1. 程式人生 > >P1765 手機_NOI導刊2010普及(10)

P1765 手機_NOI導刊2010普及(10)

讀取 以及 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)