我把你的修改的,你自己看下
- void changeChar(char *p, int lenth)
- { char *head = p;//记录首地址;
- char *end = p + lenth - 1;//最后字符地址;
- while( head<= end--) /* 错在这里,head++ 虽然这行不会变,可这行过后head就+1了,也就跑到第2个位置与后面的交换了,所以要把head移到后面*/ {
-
- char temp = *head;
- *head = *end;
- *end = temp;
- head++; //在转换完后在+1,还有就是要注意sizeof(),与strlen()的区别
-
-
-
- }
- }
- int main( )
- {
- char name[] = "myname";
- int lenth = sizeof(name);
- changeChar(name,lenth);
- printf("%s\n",name);
- return 0;
- }
复制代码 |