详细版
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const *argv[])
{
string correct,infect,error;
cin >> correct >> infect ;
for(int i=0;i<correct.length();i++)
{
if(infect.find(correct[i])==infect.npos) //应该输入的字符 不在实际输入字符中
{
if(islower(correct[i])) //如果该字符是小写
{
if(error.find(toupper(correct[i]))==error.npos) //如果该小写字母的大写字母不在error坏健中
{
error+=toupper(correct[i]); //则将该字母的大写字母加到error坏健中
}
}
else if(error.find(correct[i])==error.npos) //如果该字母不是小写字母,则检查是否在坏健中
{
error+=correct[i]; //不在则加入到坏健中
}
}
}
cout << error;
return 0;
}
简易版
对于toupper() 如果该字符是小写字母,则返回大写字母。否则则返回它本身
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const *argv[])
{
string correct,infect,error;
cin >> correct >> infect ;
for(int i=0;i<correct.length();i++)
{ //如果该字符在实际字符中为找到 且 该字符的大写字符不在坏健中,则将该字符加入到坏健中
if(infect.find(correct[i])==infect.npos&&error.find(toupper(correct[i]))==error.npos)
error+=toupper(correct[i]);
}
cout << error;
return 0;
}
版权声明:本文为weixin_43900281原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。