| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:求解如果把gets函数换成其他的函数该怎样做?
只看楼主 加入收藏
疯狂的初学者
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
求解如果把gets函数换成其他的函数该怎样做?
#include<stdio.h>
int main()
{ char string[81];
    int i,num=0,word=0;
    char c;
    gets(string);
    for(i=0;(c=string[i])!='\0';i++)
        if(c==' ')
        word=0;
    else if(word==0)
    {
        word=1;
        num++;
    }
        printf("There are %d words in the line .\n",num);
}
搜索更多相关主题的帖子: 极限 健康 
2013-07-14 10:03
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:3 
可以换成scanf("%s",string);

思考赐予新生,时间在于定义
2013-07-14 10:06
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
就用gets()啊,因为string是一个字符串数组,使用scanf的话无法输入空格,而gets可以输入空格,所以没必要换

思考赐予新生,时间在于定义
2013-07-14 10:23
谢跃锋
Rank: 2
等 级:论坛游民
威 望:2
帖 子:50
专家分:77
注 册:2013-4-14
收藏
得分:3 
回复 2楼 love云彩
scanf在输入字符的时候遇到空格会停止读取,所以空格后的内容是读取不到的,所以始终只有读取到第一个,所以不能用scanf(),也不能用getchar()
2013-07-14 10:37
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
回复 4楼 谢跃锋
知道,刚才以为楼主纯粹想换一种输入方式才说了scanf,后来看了是输入字符串,所以才多发了个帖解释

思考赐予新生,时间在于定义
2013-07-14 10:47
wzl963358694
Rank: 2
等 级:论坛游民
帖 子:35
专家分:17
注 册:2013-3-10
收藏
得分:3 
可以换成“fgets()函数”但要注意该函数的格式、、
2013-07-14 14:26
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:3 
gets是获得字符串,那里用scanf对字符串赋值不就可以了吗
2013-07-14 16:04
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
三楼四楼别那么早下结论,scanf完全可以读入带空格的字符串。

重剑无锋,大巧不工
2013-07-14 20:29
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
回复 8楼 beyondyf
还请指点一下,在此之前我一直以为scanf不能输入带有空格的字符串,也曾经多次上机操作,就不知道beyondyf认为在什么条件下scanf能输入带有空格的字符串,望指点一番

思考赐予新生,时间在于定义
2013-07-14 21:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:3 
回复 9楼 love云彩
"%[^\n]%*c"

但和gets的差别是,gets中带有'\n',这个你可以用 "%[^\n]%c"来判断……
第二个差别是gets可以返回一个空字符串,这个你可以看scanf的返回值……
2013-07-15 10:49
快速回复:求解如果把gets函数换成其他的函数该怎样做?
数据加载中...
 
   



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

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