我试图在不使用临时字符串的情况下反转字符串,但是当我执行程序时olllo
,结果却不是olleH
。
这是我的代码:
#include <stdio.h>
#include <string.h>
int main(){
char *str = strdup("Hello");
int reverse(char * str){
int i=0;
int j = strlen(str)-1;
while(i<=j){
(str[i]) = (str[j]);
i++;
j--;
}
return 0;
}
reverse(str);
printf("string = %s\n", str);
return 0;
}
您不能做这种事情,因为您char *str
是一个常量变量:您只是在其中放入了一些东西而未使用任何动态内存分配函数(例如)malloc()
。除非您重复它,否则您不能修改该指针的内容。
strdup(char *)
像这样使用:
char * str = strdup("Hello");
然后,您将能够修改您的字符串内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句