[問題] 字串反轉問題

作者: uni1021 (小李)   2017-10-29 20:46:32
void reverse(char[]);
int main()
{
char *str="12345";
reverse(str);
puts(str);
free(str);
system("pause");
return 0;
}
void reverse(char str[])
{
unsigned int i,j=strlen(str)-1;
for(i=0;i<j;++i,
作者: xie29 (xie29)   2017-10-29 20:58:00
應該是因爲你丟給str的是ㄧ個字面常數,所以不能改裡面的值
作者: stupid0319 (徵女友)   2017-10-29 20:59:00
用malloc吧,再strcpy要強硬改的話要修改分頁檔屬性,很麻煩呢
作者: suwako   2017-10-29 21:14:00
你改成char str[] = "12345";就可以了
作者: caras   2017-10-29 22:04:00
置底十三誡之第四誡
作者: steve1012 (steve)   2017-10-30 01:15:00
他是constant 當然不能改
作者: stupid0319 (徵女友)   2017-10-30 01:40:00
當然也不是完全改不了,知道些原理比較好char*字串放哪,char[]放哪,什麼的弄清楚就會了
作者: peterwu4 (notd)   2017-10-30 10:34:00
有時侯,指標就只是指標而已,不要有過多的期望~~ 指過去而已
作者: sss81521 (爆宇哥)   2017-10-30 11:14:00
只能用strcpy swap如果用Char *str

Links booklink

Contact Us: admin [ a t ] ucptt.com