c语言中函数里面怎么输入字符串数组

就是我在主函数外定义一个函数然后在这个函数里面我定义了一个字符串数组,然后我想用gets输入它;就是这样它不让我输入字符串数组
#include<string.h>
int main()
{
void a(int a);
int c=1;
scanf("%d",&c);
a(c);
printf("%d",c);
}
void a(int a)
{
int i;
char asd[123];
if (a==1)
{
gets(asd);
for(i=0;i<=9;i++)
{
printf("%d\n",asd[i]);
}
}
return 0;
}

跪求大神罩

在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。
输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入。
如:
char str[10][100]; //定义字符串数组,供10行,每行最多100个字节数据。
int i;

for(i = 0; i < 10; i ++)
scanf("%s",str[i]);//输入10行字符串数据。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-27
scanf("%d",&c);//这里输入后缓冲区中除了你输入的数字还有'\n'也就是回车,等你调用gets的时候程序把缓冲区中的回车给取走了,认为你输入的就是回车,所以不会提示你再输入了。
这句后面加句getchar();
第2个回答  2013-12-27
void a(int a)
{
int i;
char asd[10][123];
if (a<10)
{
for(i=0;i<a;i++)
{gets(asd);
for(j=0;asd[i][j]!='\0';j++)
{
printf("%c\n",asd[i][j]);
}
}
return 0;
}

大概猜测了一下你的意思写了一下代码


谢谢采纳

追问

不,那个函数是我随手编的函数,主要是想知道为什么不能打gets出原问题是这样的
void qy()
{
char *p[9999];
int e_s(int x);
int b_s(int x);
int sl_s(char ch[9999]);
int s_e(int x);
int s_b(int x);
void s_sl(int *x);

追答

你那样定义只是一个数组,或者说一个一个字串。字符串数组应该是一个二维数组

追问

百度追问不能把我的原函数发给你,能不能给我你的Q Q号

追答

2332674971

本回答被提问者采纳