PAT_B_1029 旧键盘
生活随笔
收集整理的這篇文章主要介紹了
PAT_B_1029 旧键盘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
舊鍵盤上壞了幾個鍵,于是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在 2 行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過 80 個字符的串,由字母 A-Z(包括大、小寫)、數字 0-9、以及下劃線 _(代表空格)組成。題目保證 2 個字符串均非空。 輸出格式: 按照發現順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫,每個壞鍵只輸出一次。題目保證至少有 1 個壞鍵。 輸入樣例: 7_This_is_a_test _hs_s_a_es 輸出樣例: 7TI本人AC代碼:
// PAT_1029_Broken_Key# include <stdio.h> # include <string.h>int main(void) {char S1[100]; // 記錄本應該輸入的字符 char S2[100]; // 記錄實際輸出的字符char Break_Key[85]; // 記錄壞掉的鍵int i=0, j=0, k=0;int len1, len2;int flag = 1;int n = 0; // 記錄壞掉的鍵個數 // 輸入字符串 gets(S1);gets(S2);len1 = strlen(S1);len2 = strlen(S2);for(i=0;i<strlen(S1);i++){if(S1[i]>='a'&&S1[i]<='z')S1[i]=S1[i]-32; }for(i=0;i<strlen(S2);i++){ if(S2[i]>='a'&&S2[i]<='z')S2[i]=S2[i]-32; }i=j=0;// 開始比對字符串 while (i<len1 || j<len2) {// 如果對應位置不相同,則說明該鍵是壞鍵// 有壞鍵則S2下標不動 if (S1[i] != S2[j]){// 判斷是否在已經壞掉的字符串中出現過 k=0;flag = 1;while (Break_Key[k] != '\0') {// 如果S1[i] 在Break_Key 字符串中出現過,則不再繼續,設置標志符號flag=0;if (S1[i] == Break_Key[k]){flag = 0;break;}k++;}// 寫入的時候,字母大寫 if (flag == 1){Break_Key[n] = S1[i];n++;} i++;}// 否則,說明該鍵沒問題 else{i++;j++;} }for (i=0; i<n; i++){printf("%c",Break_Key[i]);}printf("\n");return 0; }RRR
轉載于:https://www.cnblogs.com/Robin5/p/11243733.html
總結
以上是生活随笔為你收集整理的PAT_B_1029 旧键盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.22-科技信息检索主要来源
- 下一篇: 自定义镜像流程