| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 572 人关注过本帖
标题:各位大虾看看我哪里错了??
只看楼主 加入收藏
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:8 
各位大虾看看我哪里错了??
各位帮忙看下我写的程序:
#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
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:1 
getchar(),接收输入字符串结束时按的回车键!

   唯实惟新 至诚致志
2011-04-28 22:26
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:1 
scanf   ;输入以空格,TAB和回车作为结束标识
gets    ;输入以回车为结束标志
getchar ;接受单个字符,以回车为结束标识

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-28 22:30
唯我独魔
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:176
专家分:782
注 册:2011-4-13
收藏
得分:1 
getchar用来跳过你最后的换行符,scanf读取字符串时不会读入换行符
2011-04-28 22:30
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
收藏
得分:0 
回复 2楼 qq1023569223
为什么像第一个程序那样写不行啊。。。
2011-04-28 22:30
叶夜
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2011-4-21
收藏
得分:1 
scanf的输入以空格结束,第一个程序的读入a是空格 b='o'
2011-04-28 22:42
qianyou
Rank: 3Rank: 3
来 自:江西南昌
等 级:论坛游侠
帖 子:76
专家分:189
注 册:2011-3-25
收藏
得分:1 
scanf是输入函数

gets是输出函数

getchar表示得到一个字符
2011-04-30 01:07
huwengui
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:166
专家分:158
注 册:2011-4-22
收藏
得分:1 
程序涉及到字符串还要加头文件#include<string.h>
2011-04-30 23:13
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:1 
回复 5楼 cb_1212
输入字符串后,回车结束,系统将回车赋予下一个字符常量a,getchar就是用来将回车跳过,以便你输入字符a。
2011-05-01 08:20
快速回复:各位大虾看看我哪里错了??
数据加载中...
 
   



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

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