View Code of Problem 3851

#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.


Back to problem 3851