PAT (Basic Level) Practice 1029 旧键盘 (20分) 详细版 & 简单版

详细版

#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版权协议,转载请附上原文出处链接和本声明。