gpt4 book ai didi

c - 使用 s 但 gettng 段错误,当我将 `s` 替换为 `s1

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:53 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <string.h>

main() {
char s[6] = "HELLO";
printf("s.len= %d,", (int)strlen(s));
char* s1 = "HELLO";
printf("s1.len= %d,", (int)strlen(s1));
int i = 0;
while (s[i] != '\0') {
if (s[i] >= 65 && s[i] <= 90)
s[i] = s[i] + 32;
++i;
}
printf("Now s =%s\n", s);
}

使用 s 但出现段错误,当我将 s 替换为 s1 时,尽管两者具有相同的长度和相同的词(“HELLO”)。

请帮助我,指出我的错误,提前谢谢。

最佳答案

char s[6] = "HELLO"; 定义了一个包含六个字符的字符数组,最初初始化为五个字符 H、E、L、L、O 和一个空终止符。

char *s1 = "HELLO"; 定义一个指向常量字符串文字的指针。

修改字符数组是可以的,因为数组只用常量初始化。

修改字符串文字是不可行的,因为它是一个常量,而这正是您尝试通过编写 s1[0] = 'k' 来完成的。

关于c - 使用 s 但 gettng 段错误,当我将 `s` 替换为 `s1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25854630/

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