c++程序计算单词长度

【问题描述】提示用户输入一行文本,其中以空格分隔为若干个单词,以“.”结束。单词之间空格的数量不确定,行首也可能有空格。程序输出这行文本中每个单词的长度(其中的字符个数),每行一个单词。注意,连续的字符被界定为一个单词,that's是一个单词,长度为6;最后的‘.’不计算在内。 【注:不需要字符串、数组等知识。】【输入形式】输入一行文本,以‘.’结束。【输出形式】按照单词出现的顺序,输出单词及对应的长度,每个单词一行。【样例输入】 That's a good question.【样例输出】Please input a line of words:That's: 6a: 1good: 4question: 8

代码如下,如有帮助,请采纳一下,谢谢。

#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;

}