一道关于字符串逆置的题目。解决方案
一道关于字符串逆置的题目。
------解决方案--------------------
char *ca = "abcdefgh";
这个是字符串常量(字面量),对他进行修改会悲剧的..
改为:
char ca[] = "abcdefgh";
- C/C++ code
/*字符串逆置,不要用数组,库函数,以及下标访问*/ #include <stdio.h> void reverse_string( char *str ); int main(int argc, char *argv[]) { char *ca = "abcdefgh"; reverse_string( ca ); printf("%s\n", ca); return 0; } void reverse_string( char *str)//逆置字符串 { char *pc = str; while (*++pc!= 0); pc--;//指向空字符前一个字符 /*str向后移动,pc向前移动,且str要小于pc*/ while (str<pc) { char temp; temp = *pc; *pc-- = *str; *str++ = temp; } }
------解决方案--------------------
char *ca = "abcdefgh";
这个是字符串常量(字面量),对他进行修改会悲剧的..
改为:
char ca[] = "abcdefgh";