#include<stdio.h> #include<string.h> /*本题可以用strstr函数解决*/ /*strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。 如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串; 否则,返回NULL。*/ int main(){ int n; scanf("%d",&n); while(n--)//第一行给出一个整数T(1<=T<=100),表示测试数据的数目。 { char a[100];//每一组测试只包含一行字符串S2。(1<=|S2|<=100) scanf("%s",a); for(int i=0;i<strlen(a);i++)//保证S1只有小写字母,且S2只包含小写字母,左中括号,分号或逗号。 { switch(a[i]) { case 'w':a[i]='q';break; case 'e':a[i]='w';break; case 'r':a[i]='e';break; case 't':a[i]='r';break; case 'y':a[i]='t';break; case 'u':a[i]='y';break; case 'i':a[i]='u';break; case 'o':a[i]='i';break; case 'p':a[i]='o';break; case '[':a[i]='p';break; case 's':a[i]='a';break; case 'd':a[i]='s';break; case 'f':a[i]='d';break; case 'g':a[i]='f';break; case 'h':a[i]='g';break; case 'j':a[i]='h';break; case 'k':a[i]='j';break; case 'l':a[i]='k';break; case ';':a[i]='l';break; case 'x':a[i]='z';break; case 'c':a[i]='x';break; case 'v':a[i]='c';break; case 'b':a[i]='v';break; case 'n':a[i]='b';break; case 'm':a[i]='n';break; case ',':a[i]='m';break; //default"" } } // for(int i=0;i<strlen(a);i++) // { // printf("%c") // } printf("%s\n",a);//对于每一组数据,输出一个字符串S1占一行,表示答案。 } return 0; } |
Double click to view unformatted code.