#包含?& ltstring.h & gt
//?您可以使用strrev()函數來反轉字符串。這個只能倒英文,倒中文會有亂碼。
//?如果需要反向中文,可以使用_mbsrev()(#include?& ltmbstring.h & gt(ANSI模式),?或者使用wcsrev()(UNICODE模式),
夏爾?*?myStrrev(char?*?s)
{
夏爾?*?l?=?s,?*?h?=?s?+?strlen(s);
而(l?& lt?h)?{char?t?=?* l;?*l++?=?*-h;?*h?=?t;}
回歸?s;
}
int?charAdd(const?未簽名?夏爾?*?ch)
{
if(*ch++?& lt=?0x80)?回歸?1;?//?英語
if(*ch?& gt=?0x40)?回歸?2;?//?中國人
不然呢?回歸?0;?//?錯別字
}
//?這個可以反中文。
夏爾?*?myMbsrev(char?*?s)
{
size_t?萊恩。=?strlen(s);
未簽名?夏爾?*?buf?=?新的?未簽名?char【len?+?4];
未簽名?夏爾?*?h?=?buf?+?len
未簽名?夏爾?*?l?=?(未簽名?夏爾?*)s;
while(*l)
{
int?ll?=?charAdd(l);
如果(ll?==?0)?打破;
h?-=?ll;
memcpy(h,l,?ll);
l?+=?ll;
}
memcpy(s,h,?len);
刪除?buf
回歸?s;
}
int?主()
{
夏爾?str[1024];
Printf("請輸入壹個英文字符串?:?");
gets(str);
Printf("妳輸入的字符串是什麽?:?%s\n ",str);
Printf("字符串反轉後是什麽?:?%s\n ",myStrrev(str));
Printf("請輸入壹個中文字符串?:?");
gets(str);
Printf("妳輸入的字符串是什麽?:?%s\n ",str);
Printf("字符串反轉後是什麽?:?%s\n ",myMbsrev(str));
回歸?0;
}