练习5.20:编写一段程序,从标准输入中读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次时使用break语句终止循环。输出连续重复出现的单词,或者输入一个消息说明没有任何单词是连续重复出现的。
答:程序见云盘程序。
练习5.20
/*
*2015/6/7
*练习5.20
*输出第一次连续出现两次的词或给出信息没有重复出现的字符串
*作者:Nick Feng
*练习方式:nickgreen23@163.com
*还是模仿统计单词的套路,只不过,将统计的次数换为一个标志位,重复的位置标识为1,不同的标识为0
*/
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string word,nextword;
string saveword;
int flag = 0; //定义一个标志位
if (cin >> word)
{
while (cin >> nextword && nextword !="999") //输入以999为结束
{
if (nextword == word)
{
saveword = word;
flag = 1;//连续出现两个相同的,置为1
//cout << word << endl;
break;//出现两次相同的,就停止
}
else
{
word = nextword;
flag = 0;//标志位置为0,说明没有找到
}
}
}
if (flag == 0) cout << "No Finding!!!" << endl;
if (flag == 1) cout << "Finding it: " << saveword << endl;
return 0;
}