简单的字符串回转
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“位于常量区,而指针指向这个位置,所以不能更改;