繁体   English   中英

将字符串分配给2D数组

[英]Assigning a string to a 2D array

char in[100], *temp[10],var[10][10];
int i, n = 0,
double val[10];
var[0][]="ANS";

我想给var [0] [0,1,2]分配一个字符串,它是'ANS',但是不起作用,我无法弄清楚我对此有何错

您已经回答了自己的问题。 您想将var [0] [0,1,2,3]分配给“ ANS”对吗? 那么“ ANS”是一个字符数组,ans [0,1,2,3](不要忘记空终止符)。 因此,您必须分别分配每个。 在C语言中,字符串不是数据类型,它们只是其他变量(准确地说是字符)的数组。 您可以做的是:

strcpy(var[0], "ANS");

它将为您逐字节复制。

但是,strcpy有一些陷阱。 首先,目标char数组(在这种情况下为var [0])必须足够大以包含字符串。 它不会为您检查(实际上不能),因此,如果您不小心,可能会导致缓冲区溢出。 同样,源必须以NULL终止。

也许改用

strncpy(var[0], "ANS", 3);

当你写

var[0][] = "ANS"

编译器尝试将“ ANS”分配给var [0] [0],这是一个字符的唯一位置。

因此,您应该使用strcpy函数。 strcpy将逐字符复制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM