c语言中,怎么输入多组字符串,放在二维数组里
3个回答
展开全部
你可以创建一个二维数组
char ss[30][301];
这个二维数组就可以存储30个含有300个以下的字符(留一个字节给空字符)的字符串。
想要存入字符串的时候把ss[0]~ss[29]当成普通的字符数组名用就行了,
比如说存入第一个字符串:
scanf("%s",ss[0]);
或
gets(ss[0]);
打印:
printf("%s",ss[0]);
或
puts(ss[0]);
char ss[30][301];
这个二维数组就可以存储30个含有300个以下的字符(留一个字节给空字符)的字符串。
想要存入字符串的时候把ss[0]~ss[29]当成普通的字符数组名用就行了,
比如说存入第一个字符串:
scanf("%s",ss[0]);
或
gets(ss[0]);
打印:
printf("%s",ss[0]);
或
puts(ss[0]);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多个字符串的输入输出
#include <stdio.h>
int main()
{
char a[3][20];
char *p;
int i;
p=a[0];//a[0]为列指针,p指向0行0列元素,p=a[0]+j指向0行j列元素。
for (i=0;i<3;i++)gets(a[i]);
// for (i=0;i<3;i++)printf("%s\n",a[i]);
for (i=0;i<3;i++)printf("%s\n",p+i*20); //指针寻址
;//第二个字符串开始的地址,应该是a[0][0]后移20个字符的地方。p是指向字符的指针
}
数组名表示列指针*(a+i)等价于a[i]列指针
#include <stdio.h>
int main()
{
char a[3][20];
int i;
for (i=0;i<3;i++)gets(*(a+i));//列指针*(a+i)和a[i]等价
// for (i=0;i<3;i++)printf("%s\n",*(a+i));
for (i=0;i<3;i++)printf("%s\n",*(a+i));
}
#include <stdio.h>
int main()
{
char a[3][20];
char *p;
int i;
p=a[0];//a[0]为列指针,p指向0行0列元素,p=a[0]+j指向0行j列元素。
for (i=0;i<3;i++)gets(a[i]);
// for (i=0;i<3;i++)printf("%s\n",a[i]);
for (i=0;i<3;i++)printf("%s\n",p+i*20); //指针寻址
;//第二个字符串开始的地址,应该是a[0][0]后移20个字符的地方。p是指向字符的指针
}
数组名表示列指针*(a+i)等价于a[i]列指针
#include <stdio.h>
int main()
{
char a[3][20];
int i;
for (i=0;i<3;i++)gets(*(a+i));//列指针*(a+i)和a[i]等价
// for (i=0;i<3;i++)printf("%s\n",*(a+i));
for (i=0;i<3;i++)printf("%s\n",*(a+i));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询