poj-2538

解题思路:

用一个字符数组存储键盘上面的字符,利用putchar和getchar进行输入输出字符,找到对应字符出现的位置,输出其前面一个即可,采用字符数组避免了大量的switch/case语句。

#include<stdio.h>
int main()
{
	char *s="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";//用字符数组的形式存储元素,省去了大量的switch/case语句 
	int c,i;//从键盘输入的用int表示 
	while((c=getchar())!=EOF)	//用于处理一串字符,单个处理字符,统一输出。 Dev C++和codeblocks中以回车键结束输入。 
	{
		for(i=1;s[i]&&s[i]!=c;i++);//'\0'的ascII码是0,所以当s[i]=0时,表示到了字符数组的末尾。 ,此处循环主要是找到C在字符数组中的位置i 
		if(s[i])
			putchar(s[i-1]);
		else
			putchar(c);
	}
	return 0;
}


你可能感兴趣的:(字符数组,getchar,putchar)