问题:关于C语言中的字符串的问题

img


为啥D选项里有分号?,C选项哪错了啊?是因为后面的s也要加长度吗?求友友们的详细解答

C 错误是因为,字符串常量 只能 在字符数组定义并初始化使用,而C是 定义之后,然后重新赋值的

D 应该是 题目写错了,没有分号

CD都是错的, C,除了初始化的时候用等于,不能写=字符串这种形式。D那个分号显然也是错的
严格来说abc还有一个问题就是用了中文的引号
但是考虑到D可能是笔误,所以选择C

分析如下, 如有帮助给个采纳加关注下个问题不迷路 ,谢谢 ,

C选项 char s[10]; s="China"; 是错误的。在C语言中,字符数组不能通过简单的赋值来给字符串赋值。正确的做法是使用strcpy()函数将字符串复制到字符数组中。
D选项 char s[10]={'C,h', "i',;'n','a'}; 也是错误的,字符数组中的元素应该使用单引号包围,并且每个元素应该是一个字符。

在C语言中,字符数组不能通过赋值运算符 "=" 来赋值一个字符串。你需要使用字符串拷贝函数 strcpy 或者字符数组的初始化语法来完成字符串的赋值。

char s[10];
strcpy(s, "China");
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^