修改C字符串常量?
我想编写一个函数来反转传递给它的给定字符串。但是我不能。如果我doReverse
使用字符数组提供函数(参见下面的代码),我的代码运行良好。
我无法弄清楚为什么这不起作用。我能够访问str[0]
的doReverse
,但我不能用一个字符指针改变数组中的任意值。有任何想法吗?
void doReverse(char *str) { str[0] = 'b';}void main(void) { char *str = "abc"; doReverse(str); puts(str);}
我知道如何通过将字符数组传递给它来编写反向函数:
void reverse1(char p[]) { int i, temp, y; for (i = 0, y = strlen(p); i < y; ++i, --y) { temp = p[y-1]; p[y-1] = p[i]; p[i] = temp; }}
但是,我想编写另一个获取char指针作为参数的版本。
莫回无
慕村225694
江户川乱折腾
相关分类