VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 509|回复: 3

[求助] c++统计单词个数问题

[复制链接]
07_avatar_middle
在线会员 Acher陈 发表于 2018-3-19 17:44:31 | 显示全部楼层 |阅读模式
3驿站币
题目:
编写函数计算一个英文句子中的单词个数(20分)
题目内容:
编写函数计算一个英文字符串中的单词个数。

输入格式:
一个最长500个字母的英文字符串,不包含数字和特殊字符,但可能包含一些英文标点符号(逗号、句点、问号)。标点符号独立出现时不视为一个单词。 单词间可能包含一个或多个空格。

输出格式:
该句子的单词个数

输入样例:
We hope everyone watches them with warmth.

输出样例:
7
下面是源码:
#include<iostream>  
#include<string.h>  
using namespace std;
int main()
{
        char str1[500];
        cin.getline(str1, 500);
        int length = strlen(str1);
        int count = 1;
        for (int i = 0; i < length - 1; i++)
        {
                int flag1 = (str1[i] == 32);
                int flag2 = ((str1[i + 1] <= 90) && (str1[i + 1] >= 65)) || ((str1[i + 1] <= 122) && (str1[i + 1] >= 97));
                if ((flag1 == 1) && (flag2 == 1))
                {
                        count++;
                }
        }
        cout << count;
       
        return 0;
}
请帮忙解释一下for循环内是什么原理。

int flag1 = (str1[i] == 32);
                int flag2 = ((str1[i + 1] <= 90) && (str1[i + 1] >= 65)) || ((str1[i + 1] <= 122) && (str1[i + 1] >= 97));
                if ((flag1 == 1) && (flag2 == 1))
                {
                        count++;
                }
就这个不懂是什么意思。





上一篇:MFC的服务器端用完成端口接收消息的问题
下一篇:VS2015中_try关键字

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-3-19 18:32:31 | 显示全部楼层
楼主先动动脑想想:
for 循环中的 32 代表什么?
90、65、122、97 这几个数字又代表什么?
想明白这个了,估计 for 循环中的内容你就明白是什么意思了!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

07_avatar_middle
ico_lz  楼主| Acher陈 发表于 2018-3-23 14:15:43 | 显示全部楼层
Syc 发表于 2018-3-19 18:32
楼主先动动脑想想:
for 循环中的 32 代表什么?
90、65、122、97 这几个数字又代表什么?

基本上看懂了;但是让我疑惑的一点就是str1==32;这个是属于一个判断语句吗?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

51_avatar_middle
online_admins Syc 发表于 2018-3-23 15:04:10 | 显示全部楼层
Acher陈 发表于 2018-3-23 14:15
基本上看懂了;但是让我疑惑的一点就是str1==32;这个是属于一个判断语句吗?

准确的是说是个表达式,如果 (str1 == 32) 成立,那么 flag1 就是非0的数,如果不成立就是0

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-20 23:20

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表