#include <stdio.h>
void reverse_string(char *string){
char *p = string;
while(*p !='\0'){
p++;
}
p--;
while( string < p ){
char temp;
temp = *string;
*string = *p;
*p = temp;
}
}
int main(){
char *string = "abcdefg";
reverse_string(string);
printf("%s\n",*string);
}
我想要反转字符串。但是它不起作用并且代码崩溃了。 *字符串无法更改?或者出了什么问题?
答案 0 :(得分:2)
更改
char *string = "abcdefg";
到
char string[] = "abcdefg";
"%s"
格式适用于字符串,但在此处:
printf("%s\n",*string);
您正在传递int
,更改为:
printf("%s\n", string);
这是一个无限循环:
while( string < p ){
char temp;
temp = *string;
*string = *p;
*p = temp;
}
您需要在某处减少p
。