P1765 手機_NOI導刊2010普及(10)
阿新 • • 發佈:2018-06-04
讀取 以及 get 換行符 TP tps CI HR 回車
https://www.luogu.org/problemnew/show/P1765
題目描述
一般的手機的鍵盤是這樣的:
1 2 abc 3 def
4 ghi 5 jkl 6 mno
7 pqrs 8 tuv 9 wxyz
* 0 #
要按出英文字母就必須要按數字鍵多下。例如要按出x就得按9兩下,第一下會出w,而第二下會把w變成x。0鍵按一下會出一個空格。
你的任務是讀取若幹句只包含英文小寫字母和空格的句子,求出要在手機上打出這個句子至少需要按多少下鍵盤。
輸入輸出格式
輸入格式:
一行一個句子,只包含英文小寫字母和空格,且不超過200個字符。
輸出格式:
一行一個整數,表示按鍵盤的總次數。
我的思路:用一個數組存儲所有字母按鍵的情況,然後每一個字母對應一個下標;
本來在本地能得到正確結果,可提交後全部WA了,後來討論區裏說,不能直接寫else, 還有\n 和\r;
確實對字符串,以及讀字符串的函數還沒掌握好;
1,(\r, \n, \t)
\r : 回車,使光標移動到該行行首;
\n: 換行,使光標移動到下一行(不會回到行首);
\t:TAB;
2,各種讀入字符串的函數:
1,cin : 讀到空格結束,不會讀入空格;
2,gets_s : 讀入一行,遇到換行結束,不讀入換行符;
3,cin.get:可讀入一個字符,或者一行,遇到換行結束,但是不會將\n從緩沖區裏刪除;
4,cin.getline:讀入一行,遇到換行結束,並且會將\n從緩沖區裏刪除;(所以目前自己一般用這個吧);
P1765 手機_NOI導刊2010普及(10)