思路:
每输入一个字符,都可以直接输出一个字符,问题在于如何进行这样的变换呢?一个方法是使用if语句或者witch语句,如:if(c==‘w’)putchar(‘Q’),但这样很麻烦,直接存到一个数组中进行数组的移位就可以了。
代码:
#include<iostream> #include<stdio.h> #include<string.h> char*s="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; int main() { int i,c; while((c=getchar())!=EOF) //getchar只能接受一个字符,与之相对的putchar只能输出一个字符 { for( i=1;s[i]&&s[i]!=c;i++); //这里的i从1开始,判断条件知道与输入的字符相同才停止。 if(s[i]) putchar(s[i-1]); //输出前一个字符 else putchar(c); //如果找不到就输出自己,比如说数组中的第一个字符。 } return 0; }