考研机试 WERTYU

WERTYU

一种常见的键入错误是将手放到了比键盘正确位置偏右一位的位置。

这样的话,在你想键入 Q时,实际键入的是 W,当你想键入 J 时,实际键入的是 K。

现在给定一个在这种情况下,键入的错误信息,请你将其翻译为正确信息。

输入格式

输入包含多行文本,每行可能包含空格或一些可能键入的字符(如下所示)。

可能键入的字符:

第一行:234567890-=

第二行:WERTYUIOP[]

第三行:SDFGHJKL;'

第四行:XCVBNM,./

输出格式

将输入中除了空格以外的字符全部替换为正确字符后输出。

数据范围

最多不超过 100行,每行不超过 100个字符。

输入样例:

O S, GOMR YPFSU/

输出样例:

I AM FINE TODAY.

学到的要点字符串的输入

cin>>

用法一:最常用、最基本的用法,输入一个数字

cpp 复制代码
#include <iostream>
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}

用法二:接收一个字符串,遇"空格"、"Tab"、"回车"都结束

cpp 复制代码
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<<a<<endl;
}

cin.get()

用法一:cin.get(字符变量名)可以用来接收字符

cpp 复制代码
#include <iostream>
using namespace std;
main ()
{
char ch;
ch=cin.get(); //或者cin.get(ch);只能获取一个字符
cout<<ch<<endl;
}

用法二:cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格

#include

using namespace std;

main ()

{

char a[20];

cin.get(a,20); //有些类似getline。可以输入多个单词,中间空格隔开。

cout<<a<<endl;

}

用法三:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.

cpp 复制代码
#include <iostream>
using namespace std;
 
int main(void)
{
     
    char arr[10];
    cin.get(arr,10);
    cin.get();//用于删除回车,相当于getchar();
    cout<<arr<<endl;
    cin.get(arr,5);
    cout<<arr<<endl;
    system("pause");
    return 0;
}

cin.getline() // 接受一个字符串,可以接收空格并输出

cin.getline()实际上有三个参数,cin.getline(接受字符串到m,接受个数5,结束字符)

cpp 复制代码
#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5); //与上面基本相同。
cout<<m<<endl;
}
​

getline() // 接受一个字符串,可以接收空格并输出,需包含"#include"

cpp 复制代码
#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}

gets()// 接受一个字符串,可以接收空格并输出,需包含"#include

cpp 复制代码
#include<iostream>
#include<string>
using namespace std;
main ()
{
char m[20];
gets(m); //不能写成m=gets();
cout<<m<<endl;
}

getchar()//接收一个字符,需包含"#include 属于C,C++可兼容

cpp 复制代码
#include<iostream>
using namespace std;
main ()
{
char ch;
ch=getchar(); //不能写成getchar(ch);
cout<<ch<<endl;
}

这里直接我直接使用的getline()用while循环实现多行输入

cpp 复制代码
#include <iostream>
#include <map>
using namespace std;
int main(){
    map<char,char> map1={
            {'2','1'},{'3','2'},{'4','3'},{'5','4'},{'6','5'},{'7','6'},{'8','7'},{'9','8'},{'0','9'},{'-','0'},{'=','-'},
            {'W','Q'},{'E','W'},{'R','E'},{'T','R'},{'Y','T'},{'U','Y'},{'I','U'},{'O','I'},{'P','O'},{'[','P'},{']','['},
            {'S','A'},{'D','S'},{'F','D'},{'G','F'},{'H','G'},{'J','H'},{'K','J'},{'L','K'},{';','L'},{'\'',';'},
            {'X','Z'},{'C','X'},{'V','C'},{'B','V'},{'N','B'},{'M','N'},{',','M'},{'.',','},{'/','.'},{' ',' '},{'\n','\n'}
    };
    //输入多行字符串的方式
    string s;
    while(getline(cin,s)){
        for(int i=0;s[i]!='\0';i++){
            printf("%c",map1[s[i]]);

        }   printf("\n");
    }

}

输出的时候使用%c 按照每个字符进行输出

注意进行换行的操作

相关推荐
读书札记20227 分钟前
C++ switch..case语句中变量跨域问题探讨及解决方法
开发语言·c++
qq_296553279 分钟前
矩阵逆时针旋转90度:三种解法从入门到精通
数据结构·python·算法·面试·矩阵
声声codeGrandMaster12 分钟前
seq2seq概念和数据集处理
人工智能·pytorch·python·算法·ai
努力努力再努力wz14 分钟前
【Redis入门系列】Redis基础命令详解:从客户端连接到数据读写、key 管理与过期机制
c语言·开发语言·数据结构·数据库·c++·redis·缓存
谙弆悕博士17 分钟前
【附C源码】C语言实现散列表
c语言·开发语言·数据结构·算法·散列表·数据结构与算法
Peter·Pan爱编程18 分钟前
输入输出:iostream 为什么不是 printf 的替代品
c++·输入输出·c++基础·iostream
kkeeper~19 分钟前
0基础C语言积跬步之深入理解指针(5上)
c语言·开发语言·算法
LuminousCPP22 分钟前
数据结构-线性表第一篇
数据结构·经验分享·笔记·顺序表
a11177626 分钟前
边缘设备3DGS-SLAM算法对比实验报告
算法·3d
AI人工智能+电脑小能手28 分钟前
【大白话说Java面试题 第54题】【JVM篇】第14题:什么是可达性分析算法?
java·jvm·算法·面试