const char *reverse(char *str)
{
if(str == NULL)
return NULL;
int nCount = 0; // 用来统计字符串的大小
const char *pRemark_begin; // 标记字符串的首地址
char chTemp; // 用于交换字符串的临时变量
char *pString_begin; // 存储交换的头指针
char *pString_end; // 存储交换的尾指针
pString_begin = str;
pRemark_begin = str;
while(*str != 0) // 寻找字符串的结尾
{
str++;
nCount++;
}
pString_end = --str; // 退回一个才是字符串的末尾
nCount = nCount/2;
while(nCount>0) // 将字符串翻转
{
chTemp = *pString_begin;
*pString_begin = *pString_end;
*pString_end = chTemp;
pString_begin++;
pString_end--;
nCount--;
}
return pRemark_begin;
}
int main()
{
const char *pch; // 用于取得函数的返回值,来输出翻转后的结果
char chArray[] = " Hello World ! "; // 存储一个将要翻转的字符串
pch = reverse(chArray); // 将字符串chArray翻转
printf("%s/n",pch); // 打印字符串chArray
return 0;
}