| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1351 人关注过本帖
标题:每日一题!NO.4(适合新手做练习)-[统计字符问题](给出答案)
只看楼主 加入收藏
啊C
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:177
注 册:2010-6-24
收藏
得分:0 
以下是引用lz1091914999在2011-6-8 17:24:22的发言:

#include  
#include  
 
int main(void) {
    int ch, count = 0, i = 0, j = 0;
    while((ch = getchar()) != '\n')
        isalpha(ch) ? (j++ || count++, putchar(ch), i = 0) : (i++ || putchar(' '), j = 0);
    printf("\nYou're entered %d words\n", count);
    return 0;
}
很强悍啊!不 过 我用VC6编译出错,请问你用什么编译的

亲爱的朋友们动起手来吧,让我们一起迈向C语言的世界!
2011-06-08 17:35
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
O.K. 也是一个单词。

“.” 并不一定是句号

i18n 国际化

[ 本帖最后由 cosdos 于 2011-6-8 17:42 编辑 ]

—>〉Sun〈<—
2011-06-08 17:40
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
1)如何处理电子邮件地址:email@

2)如何处理网址:https://bbs.bccn.net/viewthread.php?tid=342165&extra=&page=3

还有很多很多啊

—>〉Sun〈<—
2011-06-08 17:59
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用啊C在2011-6-7 23:14:36的发言:

题目:输入一行字符(字符串),统计其中包含多少单词,单词之间用空格分开。
      附加要求:需要验证统计的单词是合法的,也就是说统计的单词字符是字母,(谢谢5楼的提醒)

题不难,
希望新手们动哈手,错了大家为你找出错误,不要害羞,实践出真理,
注意加注释哦!先前自己太少看给出评论了,呵呵,我尽量发更多时间学习你们的成果,
(由于要考试了,怕挂课,我又不是计算机专业,只是喜欢。所以得发时间去背我们专业的资料,请大家谅解)

加入了符号的判定把符号也当成空格,添加非单词的验证!
但是还是不能完全满足实际英文判定的要求,比如说 有些单词中有-符号,还是由于英语一直没学好过,所以就这样吧!


与图片结果一致

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(void)
{
    int ch, space=1, wd=0;
    while( (ch=getchar())!='\n' && ch != EOF )
    {
        if(space && isalpha(ch)) {
                wd++;
                space=0;
        }
        else
        {
            switch (ch) {
                case '-'  :
                case '\'' :
                    space=0;
                    break;
                // 可后续添加case
                default:
                    space = !isalpha(ch);
            };
        }

    }
    printf("%d", wd);
    system("pause");
    return 0;
}


[ 本帖最后由 cosdos 于 2011-6-8 18:02 编辑 ]

—>〉Sun〈<—
2011-06-08 18:01
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 18楼 啊C
。。。
我没写任何代码啊
2011-06-08 18:06
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 21楼 啊C
程序代码:
#include <stdio.h>

int isalpha(int ch) {
    return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');
}

int main(void) {
    int ch, count = 0, i = 0, j = 0;
    while((ch = getchar()) != '\n')
        isalpha(ch) ? (j++ || count++, putchar(ch), i = 0) : (i++ || putchar(' '), j = 0);
    printf("\nYou're entered %d words\n", count);
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

可能是微软的string.h里没有isalpha的声明,改改就行,我用的是Code::Blocks,呵呵。

My life is brilliant
2011-06-08 18:26
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用lz1091914999在2011-6-8 18:26:07的发言:

#include <stdio.h>

int isalpha(int ch) {
    return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');
}

int main(void) {
    int ch, count = 0, i = 0, j = 0;
    while((ch = getchar()) != '\n')
        isalpha(ch) ? (j++ || count++, putchar(ch), i = 0) : (i++ || putchar(' '), j = 0);
    printf("\nYou're entered %d words\n", count);
    return 0;
}
可能是微软的string.h里没有isalpha的声明,改改就行,我用的是Code::Blocks,呵呵。



需要如下2个头文件
#include <stdio.h>
#include <ctype.h>  // for isalpha()

—>〉Sun〈<—
2011-06-08 22:09
啊C
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:177
注 册:2010-6-24
收藏
得分:0 
呵呵!今天已经是地5天了,以后的题难度会加大一点!亲爱的朋友动起你的手来吧,事情是做出来的!不是看出来的!

亲爱的朋友们动起手来吧,让我们一起迈向C语言的世界!
2011-06-08 22:11
快速回复:每日一题!NO.4(适合新手做练习)-[统计字符问题](给出答案)
数据加载中...
 
   



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

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