看到其他人写的原地翻转字符
void reverseString( char pszText[], int length ) { if (pszText == NULL) return; char temp; for (int i=0;i<length/2;i++) { temp = pszText[i]; pszText[i] = pszText[length-i-1]; pszText[length-i-1] = temp; } }
我也写了一个:
void strTest(char *str){ char a; int l = strlen(str); int n =0; while(n<l/2){ a = *(str+n); *(str+n) = *(str+l-1-n); *(str+l-1-n) = a; //a = str[n]; //str[n] = str[l-1-n]; //str[l-1-n] = a; n++; } AfxMessageBox(str); }
效果都一样
char str0[] = "test is ok!";
strTest(str0);
注意:不能对常量字符串进行操作,如下面的语句,运行会报错:
char *str0 = "test is ok!";
strTest(str0);