标题:各位大虾看看我哪里错了??
取消只看楼主
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
结帖率:66.67%
已结贴  问题点数:10 回复次数:1 
各位大虾看看我哪里错了??
各位帮忙看下我写的程序:
#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 编辑 ]
搜索更多相关主题的帖子: continue include 
2011-04-28 22:14
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
得分:0 
回复 2楼 qq1023569223
为什么像第一个程序那样写不行啊。。。
2011-04-28 22:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-338295-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.139776 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved