UVa-10082-WERTYU

本文介绍了解决键盘输入错位的问题,即当输入时手部位置偏移导致的字符错误。通过创建一个包含所有可能输入字符的数组,并将每个字符与其正确位置的前一个字符对应,实现了一个简单的解码程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A common typing error is to place the hands on the keyboard one row to the right of the correct position. So "Q" is typed as "W" and "J" is typed as "K" and so on. You are to decode a message typed in this manner.

Input consists of several lines of text. Each line may contain digits, spaces, upper case letters (except Q, A, Z), or punctuation shown above [except back-quote (`)]. Keys labelled with words [Tab, BackSp, Control, etc.] are not represented in the input. You are to replace each letter or punction symbol by the one immediately to its left on the QWERTY keyboard shown above. Spaces in the input should be echoed in the output.


Sample Input

O S, GOMR YPFSU/


Output for Sample Input


I AM FINE TODAY.

【解析】

题目的意思就是把手放在键盘上打字不注意的话总是把所想打出的字母往右移了一位,比如我们输入的是Q变成了W,我们想输入的A变成了S。题目给出我们错的字符串叫我们输出正确的字符串。此题也涉及到了, . / 等这些字符所以我们用ascll码做肯定是不好做了,那么我们就列一个字符数组把所以涉及到的字符串放在里面然后再输出它的前一个字符那就可以了。这里还有注意的就是我们想把 '\'这个放在字符串当中我们则需要放两个\\进去。因为以\开头的为转义序列。

#include<stdio.h>
#include<string.h>
int main()
{
   char s[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";//先把各个字符放入一个数组当中
   int i;
   char c;
   while((c=getchar())!=EOF)
   {
       for(i=1;s[i]!='\0';i++)
       {
           if(s[i]==c)//找到那个字符跳出循环如果没有找到则一直到s[i]为'\0'
            break;
       }
       if(s[i]!='\0')
       {
           printf("%c",s[i-1]);//已经找到了则输出前一个
       }
       else
       {
           printf("%c",c);//没有找到则直接输出
       }

   }
   return 0;
}



                
内容概要:本文详细介绍了Rust在系统编程中的应用,包括基础知识、核心技术及开发流程。首先阐述了Rust语言的基础及环境搭建,强调了其强类型系统和现代语法。接着深入探讨了所有权机制与内存安全,指出Rust通过所有权系统确保内存安全,避免悬垂指针和内存泄漏。再者,讲解了Rust的并发编程模型,通过消息传递和无数据竞争的线程模型实现安全并发。此外,讨论了Rust在底层硬件访问与嵌入式开发中的应用,展示了其在资源受限平台上的适应性。随后,介绍了系统调用与内核模块开发,说明了Rust如何调用操作系统底层API并实现与现有内核代码的无缝集成。还提及了性能优化与调试技巧,如使用编译器优化选项和工具链支持。最后,通过实战项目案例解析和社区资源展望,展示了Rust在系统编程领域的潜力和发展前景。; 适合人群:有一定编程基础,尤其是对系统编程感兴趣的开发者,包括操作系统内核开发、驱动程序编写、嵌入式系统开发等领域的工程师。; 使用场景及目标:①学习Rust语言的基础知识和环境搭建,掌握强类型系统和现代语法;②理解所有权机制与内存安全,避免传统系统编程中的常见错误;③掌握并发编程模型,实现安全高效的多线程操作;④了解底层硬件访问和嵌入式开发,适应资源受限平台;⑤掌握系统调用与内核模块开发,实现与现有系统的无缝集成;⑥学习性能优化与调试技巧,提高系统软件的运行效率和稳定性;⑦通过实战项目案例解析,掌握系统编程的实际应用。; 其他说明:Rust作为系统编程的新选择,不仅提升了传统系统软件的安全性,还通过现代语言特性和工具链优化了开发效率。开发者应充分利用Rust的特性,构建更加健壮、高效的系统软件,迎接未来计算机领域的新挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值