UVa 10082 - WERTYU 解题报告 - C语言
生活随笔
收集整理的這篇文章主要介紹了
UVa 10082 - WERTYU 解题报告 - C语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.題目大意:
?
輸入一個錯位的字符串(字母全為大寫),輸出原本想打出的句子。
?
2.思路:
如果將每個輸入字符所對應的應輸出字符一一使用if或者switch,則過于繁瑣。因此考慮使用常量數組實現。
?
3.應該注意的問題:
(1) 在對常量數組賦值時,應考慮字符轉義符的影響,反斜杠"\"的轉義符應為"\\"。
(2) 小心控制訪問數組的范圍。
?
4.代碼:
#include"stdio.h" char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; int main() {int i,a;while((a=getchar()) != EOF){for(i = 1; s[i] && (s[i]!=a); i++); // 尋找其錯位之后的位置。如果i大于或等于數組s[]的長度,則s[i]=0。if(s[i])putchar(s[i-1]); // 如找到錯位之后的位置,輸出其原本想打出的字符elseputchar(a);}return 0; }
其中,第八行,也可以用以下方式取代(需要加相應頭文件)
for(i = 1; i<strlen(s) && (s[i]!=a); i++);5.小結:
(1)慎用"scanf("%s")"輸入字符串,因為其遇到空格或者Tab會停下
(2)在"scanf("%s",s)"中,不要在s前加"&"
(3)定義常量數組無需指明大小,編譯器會自動計算。
?
參考書目:算法競賽入門經典(第2版) 劉汝佳 編著
轉載于:https://www.cnblogs.com/rgvb178/p/5944076.html
總結
以上是生活随笔為你收集整理的UVa 10082 - WERTYU 解题报告 - C语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux虚拟机ip地址更改
- 下一篇: iOS学习之沙盒