各位大虾看看我哪里错了??
各位帮忙看下我写的程序:#include<stdio.h>
void main()
{
char a,b,str[31];
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",str);
scanf("%c%c",&a,&b);
for(j=0;j<strlen(str);j++)
{
if(str[j]==a)
str[j]=b;
}
puts(str);
}
}
运行结果:
1
hello-how-are-you o O
hello-how-are-you
Press any key to continue
结果要求是输出hellO-hOw-are-yOu(注意O是大写)。这是怎么回事?本人是菜鸟。
上网搜了下后,得到如下程序:
#include<stdio.h>
void main()
{
char a,b,str[31];
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",str);
getchar();
scanf("%c",&a);
getchar();
scanf("%c",&b);
for(j=0;j<strlen(str);j++)
{
if(str[j]==a)
str[j]=b;
}
puts(str);
}
}
运行结果正常。
我想问,那个getchar();语句是什么作用啊?我用gets(str);语句输入字符串结果行不通啊。
求高手帮忙解答下:scanf gets gerchar 函数到底有什么区别。简单点的,我对缓冲区之类的不太懂……只要告诉运用这几个语句要注意些什么就行,不至于搞混淆了。谢谢了
[ 本帖最后由 cb_1212 于 2011-4-28 22:17 编辑 ]