| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4540 人关注过本帖
标题:有关getchar()用法和scanf()输入还不是很懂,求大佬指教
取消只看楼主 加入收藏
北天星辰
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2018-5-21
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
有关getchar()用法和scanf()输入还不是很懂,求大佬指教
要求:从键盘输入一个字符串,再任意输入一个指定字符,删除字符串中的指定字符。
有问题的代码
#include<stdio.h>
#include<string.h>
int main()
{
    char str[30],new_str[30],c;
    int i,j;
    gets(str);
    getchar();
    scanf("%c",&c);
    for(i=0,j=0;str[i]!='\0';i++)
    {
        if(str[i]!=c)
            new_str[j++]=str[i];
    }
    new_str[j]='\0';
    puts(new_str);
    printf("%s\n",new_str);
    return 0;
}但是输出结果没有删除字符的功能;之后,把    getchar();
    scanf("%c",&c);换成  c=getchar();结果正确。所以有大佬解释一下吗?
搜索更多相关主题的帖子: getchar 用法 scanf 输入 str 
2018-05-21 16:15
北天星辰
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2018-5-21
收藏
得分:0 
回复 3楼 应惜红颜
这里c不是字符数组名啊,字符变量
2018-05-21 23:50
北天星辰
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2018-5-21
收藏
得分:0 
回复 5楼 ab1412
这段代码中getchar();的目的就是稍微暂停程序的(我的目的是起下面的这段程序中getchar()一样的作用)
#include<stdio.h>   //一段测试输入的代码
#include<string.h>
int main()
{
    char s1[100];
    char s2[100];
    scanf("%s",s1);
    getchar();   //如果没有这一句,回车,想输入下面的s2,程序会直接跳过直接输出s1
    gets(s2);
    puts(s1);
    printf("\n");
    puts(s2);
    return 0;
}所以,为了输入s1后,回车另起一行输入s2,就加了一句getchar()。为什么套用到上面就不行?

2018-05-22 00:52
北天星辰
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2018-5-21
收藏
得分:0 
回复 11楼 ab1412
嗯嗯,getchar()需要再次回车才能输入,之前直接在getchar()的位置输入字符串导致结果错误。谢啦!
2018-05-22 10:17
北天星辰
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2018-5-21
收藏
得分:0 
回复 7楼 自学的数学
多谢大佬!!
2018-05-22 10:18
快速回复:有关getchar()用法和scanf()输入还不是很懂,求大佬指教
数据加载中...
 
   



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

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