PAT 1029. 舊鍵盤
阿新 • • 發佈:2017-12-24
scan urn int 輸出格式 const markdown algorithm logs 一段
PAT 1029. 舊鍵盤
舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。
輸入格式:
輸入在2行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過80個字符的串,由字母A-Z(包括大、小寫)、數字0-9、以及下劃線“_”(代表空格)組成。題目保證2個字符串均非空。
輸出格式:
按照發現順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫,每個壞鍵只輸出一次。題目保證至少有1個壞鍵。
輸入樣例:
7_This_is_a_test
_hs_s_a_es
輸出樣例:
7TI
分析
用了C語言中的標準函數庫中的strchr()函數可以實現查找字符串中的某個字符。 頭文件: #include <string.h> 函數原型:char *strchr(const char *s, int c); 函數說明:從左向右,在字符串s中查找字符c首次出現的位置,如果找到返回c在s中的位置(指針),否則返回NULL
代碼如下.
#include<iostream> #include<algorithm> #include<cctype> #include<string.h> using namespace std; int main(){ char input1[81],input2[81],broken[81]={0}; scanf("%s%s",&input1,&input2); int t1=0,t2=0,t=0; while(input2[t2]!='\0'){ if(input1[t1]!=input2[t2]){ if(isalpha(input1[t1])) input1[t1]=toupper(input1[t1]); if(!strchr(broken,input1[t1])) broken[t++]=input1[t1]; t1++; } else{ t1++; t2++; } } while(input1[t1]!='\0'){ if(isalpha(input1[t1])) input1[t1]=toupper(input1[t1]); if(!strchr(broken,input1[t1])) broken[t++]=input1[t1]; t1++; } printf("%s",broken); return 0; }
PAT 1029. 舊鍵盤