C语言,要输入N个字符串怎么输?

来源:百度知道 编辑:UC知道 时间:2024/05/16 12:10:35
才学不久,我想问一下,
如果我想输入多个字符串怎么输入啊?
就比如for(i=0;i<n;i++)scanf("%d",&a[i]);
这种可以实现整型的输入了,多个,但是,字符串多个要是用这种如何输入啊。我本来想用二维数组,for(i=0;i<n;i++)gets(str[i]);
但是,不好用这种,请教一下,像我说这种,需要输入字符串个数能自己定,注意不是字符个数,这样如何实现?谢谢。
#include<stdio.h>
main()
{
char s[2][10];
for(int i=0;i<2;i++)
gets(s[i]);
for(i=0;i<2;i++)
printf("%s\n",s[i]);
}

这是我刚才写的,调不出来,退了重进的,好用了。可能是我编译的问题。

可以用指针数组来实现。
比如你的字符串个数有3个:则申明一个char *p[3];
然后只要循环读入就可以了。
for(i=0;i<3;i++)gets(p[i]);

如果要输入N个不包含空格的字符串,可以这样输入:
char s[N][20];
for(i=0;i<N;i++)
scanf("%s",s[i]);

如果要输入N个允许包含空格(以回车结束)的字符串,可以这样输入:
char s[N][100];
for(i=0;i<N;i++)
gets(s[i]);

用二维数组
比如输入两个字符串

#include<stdio.h>
main()
{
char s[2][10];
for(int i=0;i<2;i++)
scanf("%s",s[i]);
}

楼上是C++

呵呵 这个用C也简单啊

假设a,b,c三个字符串

char a[100],b[100],c[100];
scanf("%s;%s;%s",a,b,c);
就可以了 不加& 包含头文件<string.h>
输入的时候字符串用英文分号分隔

int n;
cin >> n;
string *str = new string[n];