char in[100], *temp[10],var[10][10];
int i, n = 0,
double val[10];
var[0][]="ANS";
我想为var [0] [0,1,2]指定一个字符串'ANS',但不起作用,我无法弄清楚我错在哪里
答案 0 :(得分:2)
你有点回答了自己的问题。你想将var [0] [0,1,2,3]分配给“ANS”吗? “ANS”是一个字符数组,ans [0,1,2,3](不要忘记null终止符)。所以你必须分别分配每一个。在C字符串中不是数据类型,它们只是其他变量的数组(确切地说是字符)。你可以做的是:
strcpy(var[0], "ANS");
将为您执行逐字节复制。
然而,有一些陷阱需要考虑。首先,目标字符数组(在本例中为var [0])必须足够大以包含字符串。它不会为您检查(实际上它不能),所以如果您不小心,可能会导致缓冲区溢出。此外,源必须以NULL结尾。
答案 1 :(得分:2)
也许改为使用,
strncpy(var[0], "ANS", 3);
答案 2 :(得分:1)
写作时
var[0][] = "ANS"
编译器尝试将“ANS”分配给var [0] [0],这是一个只有一个char的地方。
因此,您应该使用strcpy函数。 strcpy将复制char-by-char。