问题描述:

样例输入:O S

样例输出:I A

代码实现:

 #include <stdio.h>

 char *s = "`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./'";
int main()
{
int c,i;
while((c = getchar()) != EOF)
{
for(i = ;s[i] && s[i]!=c;i++);
if(s[i])
{
putchar(s[i-]);
}
else
{
putchar(c);
}
}
return ;
}

个人的想法:

输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。注意返回的只是一个字符,这个字符也就是输入的第一个字符,缓冲区的第一个。然后再次调用getchar(),它会判断缓冲区中是否已有数据,如果有数据就读取缓冲区的第一个字符,然后返回。这样依次下去,直到缓冲区为空,才会等待输入数据。这就是为什么输入abc会打印abc。

最新文章

  1. IOC和AOP的基础原理
  2. WPA/WAP2wifi 密码破解笔记
  3. dword word byte 相互转换 .xml
  4. 轻松学习Linux之入门篇
  5. hdu4485 B-Casting(mod运算)
  6. Umbraco TextBoxFor 如何加样式和属性
  7. HDU_1401——分步双向BFS,八进制乘权值压缩,map存放hash
  8. 【转】android ddms中查看线程释疑
  9. python字符集的转换(mysql数据乱码的处理)
  10. Android开发学习之路--RxAndroid之简单原理
  11. nodejs接收get参数和post参数
  12. bisect模块(使用二分法将数据按顺序插入一个列表)
  13. python2.7生成exe可执行文件
  14. java线程入门一
  15. ettercap插件介绍
  16. 为 昂达 v891 安装上了 remix OS 了
  17. java string字符拼接符"+"的研究
  18. DataContract和DataMember的作用
  19. null和System.DBNull.Value的区别
  20. Android下基于PCM的音频渲染

热门文章

  1. android学习笔记23——菜单
  2. insmod module_param 模块参数
  3. 黄聪:C#操作xml SelectNodes,SelectSingleNode通过 xPath 定位class包含Contains的DIV
  4. Redis内存使用优化与存储(转)
  5. TCP程序设计
  6. Hbase原理
  7. 播放wav聲音格式
  8. C# Bitmap Save Generic GDI+ Error
  9. 下载文件的一种简单方法js
  10. Dapper.NET使用(转)