如何将字符串添加到这样的数组中?我有一个名为" line"它读取用户的输入,然后将其存储在" var" 。 Var的大小[10] [40]因此它可以存储10个大小为40的字符串(希望这就是它的作用?)。
int main (int argc, char **argv){
int i=0,n=0;
char line[40];
char var[10][40];
while(n<10){
gets(line);
strcpy(var[i],line);
printf("%s",var[i]);
i++;
n++;
}
}
答案 0 :(得分:2)
gets()
很危险,不应该使用。使用fgets()
读取输入并将其存储在数组中。
PS:fgets()
附带换行符。在将数据从行复制到数组之前,最好检查fgets()
的返回值。
while(i<10){
fgets(line,sizeof(line),stdin);
strcpy(var[i],line);
printf("%s",var[i]);
i++;
}
答案 1 :(得分:0)
首先,使用fgets
,gets
已被弃用且危险。
同样适用于strcpy
,使用strncpy
代替,它允许您指定要复制的字符数,这样如果字符串不是,则不会复制垃圾内存NULL终止的。
然后你可以删除n
,你不需要它。因此,您几乎可以获得与Gopi相同的代码,但请勿使用strcpy
!!!
答案 2 :(得分:0)
您不需要行缓冲区,直接将输入写入var
while( n<10 && fgets(var[n],40,stdin)!=0 ){
strtok(var[n],"\n"); /* remove trailing newline */
printf("%s",var[n]);
n++;
}