读书人

一道关于字符串逆置的题目。解决方案

发布时间: 2012-04-28 11:49:53 作者: rapoo

一道关于字符串逆置的题目。

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";

读书人网 >C语言

热点推荐