简单的字符串回转

 1 void runString(char* str)
 2 {
 3     if (str == NULL)
 4     {
 5         return ;
 6     }
 7 
 8     int nLen = strlen(str);
 9     int nMid = nLen/2;
10     nLen -=1;
11 
12     for (int i =0;i<nMid;++i)
13     {
14         char cTmp = str[i];
15         str[i] = str[nLen-i];
16         str[nLen-i]=cTmp;
17     }
18 }
19 
20 int _tmain(int argc, _TCHAR* argv[])
21 {
22     char* str = "123456789";
23     char* str1 = (char*)malloc(strlen(str)+1);
24     memset(str1,'\0',strlen(str)+1);
25     strcpy(str1,str);
26     runString(str1);
27     printf("%s",str1);
28 
29     system("pause");
30 
31     return 0;
32 }

PS:传入的字符串可以是char str[] = "12345789";也可以是申请空间后的char* str;但不可以把char* str = "123456789";直接传入,在字符交换时会出现访问错误,原因是“123456789“位于常量区,而指针指向这个位置,所以不能更改;

posted @ 2017-07-24 14:57  风的哀伤  阅读(265)  评论(0编辑  收藏  举报