字符串里的一道编程题
编程输入几个字符串,将第一个字母为“A”的字符串一次全部输出。
#include<stdio.h>
#include<string.h>
int main(void)
{
char str1[20][20],str2[20][20]; //假设最多可输入20个字符串
int i,n,j=0;
scanf("%d",&n); // n为要求输入字符串的个数
getchar();
for(i=0;i<n;i++)
{
gets(str1[i]); //读入n个字符串
if(str1[i][0]=='A') //如果字符串str1[i]的第一个字母为"A"
{strcpy(str2[j],str1[i]); //则将该字符串拷贝给字符串str2[j]
j++;
}
}
for(i=0;i<j;i++)
puts(str2[i]);
putchar('\n');
return 0;
}
请问高手:getchar(); 这个语句有什么作用啊?请讲的详细一点。我是初学者。
[解决办法]
因为你在scanf的时候不但输入了一个数字传给n,还打了一个回车,而这个回车如果不接收的话就会被for循环里的gets()函数接收,这样的话就达不到你要输入n个串的目的啦。