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从缓冲区里删除;(所以目前自己一般用这个吧);