[心得] :0.004
1.要注意空白和換行的處理
2.如果是小寫,則不處理,直接輸出
#include <stdio.h>
#include <string.h>
int main()
{
char key_board[] = "=-0987654321`\\][POIUYTREWQ';LKJHGFDSA/.,MNBVCXZ";
char input[3000];
char map[3000];
int length1,length2;
while(gets(input)!=NULL)
{
int i,j,counter=0;
length1 = strlen(input);
length2 = strlen(key_board);
for(i=0;i<length1;i++)
{
for(j=0;j<length2;j++)
{
if (input[i] == 32)
{
map[i]=32;
counter++;
}
else if (input[i] == 13)
{
map[i]=13;
counter++;
}
else if(input[i]==key_board[j])
{
map[i]=key_board[j+1];
counter++;
}
}
if( counter ==0)
{
map[i] = input[i];
}
counter=0;
}
for(j=0;j<length1;j++)
{
printf("%c",map[j]);
}
printf("\n");
}
system("pause");
//return 0;
}
寫完之後看到網路上別人寫的,GOOD!
#include <stdio.h>
#include <string.h>
int main()
{
char s[50]="=-0987654321`\\][POIUYTREWQ';LKJHGFDSA/.,MNBVCXZ";
char *x;
char c;
while((c=getchar())!=EOF)
{
x=strchr(s,c);
putchar(x?s[x-s+1]:c);
}
system("pause");
return 0;
}
沒有留言:
張貼留言