在这里,我在代码中尝试执行以下操作,并收到以下错误---“prog.c:10:8: 错误:从类型分配给类型“char[100]”时,类型不兼容'char *'"
。请帮助并告诉我如何修改我的初始化(char str[100]
)以获得正确的答案
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[100];
str = "a";
str = str + 1;
str = "b";
str = str + 1;
str = "c";
str = str + 1;
printf("%s", str - 2);
return 0;
}
最佳答案
您已经声明了一个数组
char str[100];
通过指定数组的名称,您将获得数组的基地址,该基地址与第一个元素的地址相同。
str="a";
在上面的语句中,您尝试将“a”(注意“a”在这里是字符串)地址分配给数组基址。 编译器不会允许你这样做。因为,如果你这样做,你将失去所有 100 个元素。
如果您想为第一个元素分配值“a”,则执行
str[0] = 'a';
请注意,我使用了单引号。请记住“单字符的单引号”。
关于c - 字符串初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831953/