C 如何向数组中添加字符串?

C 如何向数组中添加字符串?,c,C,如何向这样的数组中添加字符串?我有一个名为“line”的字符串,它读取用户的输入,然后将其存储在“var”中。Var的大小为[10][40],因此它可以存储10个字符串,每个字符串的大小为40(希望它就是这样做的?) int main(int argc,char**argv){ int i=0,n=0; 字符行[40]; charvar[10][40]; 而(nget()是危险的,不应使用。请使用fgets()读取输入并将其存储在数组中 PS:fgets()带有换行符。在将数据从行复制到数组之前

如何向这样的数组中添加字符串?我有一个名为“line”的字符串,它读取用户的输入,然后将其存储在“var”中。Var的大小为[10][40],因此它可以存储10个字符串,每个字符串的大小为40(希望它就是这样做的?)

int main(int argc,char**argv){
int i=0,n=0;
字符行[40];
charvar[10][40];
而(n
get()
是危险的,不应使用。请使用
fgets()
读取输入并将其存储在数组中

PS:
fgets()
带有换行符。在将数据从行复制到数组之前,最好检查
fgets()
的返回值

   while(i<10){
    fgets(line,sizeof(line),stdin);
    strcpy(var[i],line);
    printf("%s",var[i]);
    i++;
    }

while(i首先,使用
fgets
gets
已被弃用且危险

同样的情况也适用于strcpy
,请使用strncpy
,它允许您指定要复制的字符数,以便在字符串未以NULL结尾时不会通过垃圾内存进行复制


然后您可以删除
n
,您不需要它。因此,您几乎可以获得与Gopi相同的代码,但不要使用
strcpy
!!!

您不需要行缓冲区,直接将输入写入var

while( n<10 && fgets(var[n],40,stdin)!=0 ){
    strtok(var[n],"\n"); /* remove trailing newline */
    printf("%s",var[n]);
    n++;
}
while(n
while( n<10 && fgets(var[n],40,stdin)!=0 ){
    strtok(var[n],"\n"); /* remove trailing newline */
    printf("%s",var[n]);
    n++;
}