【问题描述】提示用户输入一行文本,其中以空格分隔为若干个单词,以“.”结束。单词之间空格的数量不确定,行首也可能有空格。程序输出这行文本中每个单词的长度(其中的字符个数),每行一个单词。注意,连续的字符被界定为一个单词,that's是一个单词,长度为6;最后的‘.’不计算在内。 【注:不需要字符串、数组等知识。】【输入形式】输入一行文本,以‘.’结束。【输出形式】按照单词出现的顺序,输出单词及对应的长度,每个单词一行。【样例输入】 That's a good question.【样例输出】Please input a line of words:That's: 6a: 1good: 4question: 8
1条回答 默认 最新
- qfl_sdu 2021-06-01 21:28关注
代码如下,如有帮助,请采纳一下,谢谢。
#include <iostream> #include <string> using namespace std; int main() { string src = ""; int i = 0; string tmp; bool bPrectrl = true; cout << "请输入一个字符串:" << endl; getline(cin,src); while(i < src.length()) { if (src.at(i) == ' ' && bPrectrl) { i++; bPrectrl = true; continue; }else if ( (src.at(i) == ' ' || src.at(i) == '.' ) && (!bPrectrl)) { bPrectrl = true; cout << tmp << ":" << tmp.length() << endl; tmp = ""; i++; }else { bPrectrl = false; tmp.append(1,src.at(i)); i++; } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 4无用