gpt4 book ai didi

c - 修改 C 字符串常量?

转载 作者:太空狗 更新时间:2023-10-29 16:39:19 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why do I get a segmentation fault when writing to a string?

我想编写一个函数来反转传递给它的给定字符串。但是我不能。如果我为 doReverse 函数(参见下面的代码)提供一个字符数组,我的代码运行良好。

我不明白为什么这不起作用。我可以在 doReverse 中访问 str[0],但我无法使用 char 指针更改数组的任何值。有什么想法吗?

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 指针作为参数。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com