思路:
每输入一个字符,都可以直接输出一个字符,问题在于如何进行这样的变换呢?一个方法是使用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;
}