题目如下:
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
网友评论