考研机试 WERTYU

WERTYU

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

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

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

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

可能键入的字符:

第一行:234567890-=
第二行:WERTYUIOP[]
第三行:SDFGHJKL;’
第四行:XCVBNM,./

输出格式

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

最多不超过 100行,每行不超过 100个字符。
输入样例:

O S, GOMR YPFSU/

输出样例:

I AM FINE TODAY.

学到的要点字符串的输入
cin>>
用法一:最常用、最基本的用法,输入一个数字

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

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

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

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

#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(字符数组名,接收字符数目)的不足.


#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,结束字符)


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

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


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

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

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

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


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

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

#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 按照每个字符进行输出
注意进行换行的操作

相关推荐

  1. WERTYU

    2024-01-27 23:16:01       32 阅读
  2. 链表合并

    2024-01-27 23:16:01       26 阅读
  3. 手机键盘

    2024-01-27 23:16:01       39 阅读
  4. 成绩排序

    2024-01-27 23:16:01       27 阅读
  5. 三元组

    2024-01-27 23:16:01       32 阅读
  6. 阶乘的和

    2024-01-27 23:16:01       31 阅读
  7. 试题

    2024-01-27 23:16:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 23:16:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 23:16:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 23:16:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 23:16:01       20 阅读

热门阅读

  1. C++学习笔记(五十):c++ 移动语义与std::move

    2024-01-27 23:16:01       30 阅读
  2. 设计模式---观察者模式

    2024-01-27 23:16:01       32 阅读
  3. cs2系统提升思路

    2024-01-27 23:16:01       37 阅读
  4. 从k8s当中学习go cli脚手架开发利器-cobra

    2024-01-27 23:16:01       33 阅读
  5. 一篇文章带你全面理解热更新技术

    2024-01-27 23:16:01       32 阅读
  6. Golang 垃圾回收

    2024-01-27 23:16:01       32 阅读