C++ 字符数组 - 统计一段英文单词的平均长度

题目如下:

1、求输入英文句子单词的平均长度。(以空格,逗号,感叹号,问号等符号隔开单词,最后以实心句号结束。)
如:s表示字母数量,count表示单词数量,字母串可以直接应用下标
what is your name? my name is lilei.单词平均长度3.4

初看很简单啊,想了想,便有思路了:先读取字符串,再一个for取每一个char字符。循环判断是否为一个新单词,在每一个新单词结束前,统计单词数量,结束时 总值++,单词个数++。
代码如下:

#include <iostream>
#include <cstring>

using  namespace std;

int main()
{
    string str;
    getline(cin,str);
    int index =1;
    int SUM_temp = 0;
    int SUM = 0;
    for(int i=0;i<str.size();i++)
    {
            char c = str[i];
            if(c == '.')
                 break;
            if(c == ' ' || c == '?' || c == '!' || c == ',')
            {
                 SUM += SUM_temp;
                 SUM_temp = 0;
                 index++; 
             }else
                  SUM_temp++;
     }
     SUM += SUM_temp;
     cout<<SUM/index;
    system("pause");
    return 0;
}

其中:
str.size()可以返回一个str的长度

string str = "STR";
str.size(); //Return 3

getline(cin,str);读取一行字符串(不同于cin,cin会在读取空格后结束)

>>123 4
getline(cin,str); //123 4
cin>>str; //123
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容