做法自然还是构建一个容器处理方便
#include<stdio.h>
#include<string.h>
int main(void)
{
char ch[1000], s[50] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int i, j, len, flag, count;
while(gets(ch))
{
len = strlen(ch);
for(i = 0; i < len; i++)
{
for(j = 0; j < strlen(s); j++)
{
if (ch[i] == s[j])
{
flag = 1;
count = j-1;
break;
}
if (ch[i] != s[j])
{
flag = 0;
}
}
printf("%c", flag?s[j-1]:ch[i]);
}
printf("\n");
}
}
但是看到刘大之后顿时钦佩,简洁之道
#include<stdio.h>
char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int main(void)
{
int i, c;
while((c = getchar()) != EOF)
{
for(i = 1; s[i] && s[i] != c; i++);
if (s[i]) putchar(s[i-1]);
else putchar(c);
}
}