其实这道题我感觉有点歧义(中华文化博大精深),所以我对它进行了两种解释,第三种的话,是突然想到了。
慢慢来,会好的
1)输出时重复的单词首字母大写
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
vector<string> text;
string word,temp;
while (cin >> word)
{
text.push_back(word);
}
auto beg = text.begin();
auto end = text.end();
while (beg != end)
{
if (*beg == temp)
{
auto c=(*beg).begin();//重复单词的首字母
*c = toupper(*c);//首字母大写,其实这道题也就多了这两步
cout << "重复出现的单词是:" << *beg<<endl;
break;
}
else
{
temp = *beg;
beg++;
}
}
if (beg == end)
{
cout<<"没有重复的单词"<<endl;
}
system("pause");
return 0;
}
2)首先首字母要大写再考虑是否重复
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
vector<string> text;
string word,temp;
while (cin >> word)
{
text.push_back(word);
}
auto beg = text.begin();
auto end = text.end();
while (beg != end)
{
auto c = (*beg).begin();//重复单词的首字母
if (*c >= 'A' && *c <= 'Z')//首字母大写,首字母不大写就不用考虑重复不重复了
{
if (*beg == temp)
{
cout << "重复出现的单词是:" << *beg << endl;
break;
}
else
{
temp = *beg;
}
}
beg++;
}
if (beg == end)
{
cout<<"没有重复的单词"<<endl;
}
system("pause");
return 0;
}
3)我刚刚又想到它可能想练习一下continue的使用,毕竟是放在continue的小节之下
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
vector<string> text;
string word,temp;
while (cin >> word)
{
text.push_back(word);
}
auto beg = text.begin();
auto end = text.end();
while (beg != end)
{
auto c = (*beg).begin();//重复单词的首字母
if (*c<= 'A' || *c >= 'Z')//首字母不在‘A’和‘Z’之间,就直接进行下一次循环
{
continue;//强行使用一波continue,continue与break不同,continue中断本 次迭代,但是循环继续进行
//break是直接跳出循环体,结束此次循环
}
if (*beg == temp)
{
cout << "重复出现的单词是:" << *beg << endl;
break;
}
else
{
temp = *beg;
}
beg++;
}
if (beg == end)
{
cout<<"没有重复的单词"<<endl;
}
system("pause");
return 0;
}