读书人

指针实现 字符串逆序,该如何解决

发布时间: 2012-04-25 19:32:32 作者: rapoo

指针实现 字符串逆序
void reverse_string( char *string )
{
char *cp1;
char *cp2;
char temp;
for (cp2=string; *cp2 !='\0';cp2++)
{
;
}
cp2=cp2-1; //回到最后一个字符,规定不用已知的函数
cp1=string;

while (cp1 < cp2)
{
temp = *cp1;
*cp1 = *cp2; //交换为啥出错????
*cp2 = temp;
cp1++;
cp2--;
}
cp1=string;
printf("%s\n",cp1);
}

[解决办法]
你是这样调用的吧reverse_string( "15646a" );
或者类似这样的调用?
因为这个字符串是常量存储区,没发修改的。
改成
char str[]="5454fs";
reverse_string( str);
这样就行了

读书人网 >C语言

热点推荐