因为课程是主学c++。所以对c的很多细节不甚了解啊。 //一个是对转义字符的处理。形如\\ %% //还有一个是对未在数组a里的字符进行处理 //getchar 返回的是一个int型的值 //char型数组的最后一位是'\0' 即为0,其他的阿斯科马都不为0.所以if[a[i]]表示元素是数组a中的元素。 //for(); 是满足for()内的条件一直进行。不满足就跳出。 解法一 #include <stdio.h> char *s = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; int main(){ int i,c; while ((c = getchar()) != EOF) { for (i=1; s[i] && s[i]!=c; i++); //s[i] &&表示扫描到元素的最后 if (s[i]) putchar(s[i-1]); else putchar(c);//如果在数组a内,则输出,否则,输出原字符。 } return 0;} 解法二 #include <stdio.h> #include <cstring> using namespace std; int main() { char a[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; int b; while((b = getchar()) != EOF) { if(b!=' '&&b!='\n') { int len = strlen(a); bool flag = false; for(int j=1; j<len; j++) { if(b==a[j]) {printf("%c",a[j-1]); flag = true;} } if (!flag) printf("%c", b); } else printf("%c",b); } return 0; }
【上篇】利用WeakHashMap避免因缓存条目过期而造成的内存泄漏问题
【下篇】软件随想录(local.joelonsoftware.com/wiki)-2000年08月09日 约耳测试:迈向高品质的12个步骤 – The Joel Test: 12 Steps to Bette
【下篇】软件随想录(local.joelonsoftware.com/wiki)-2000年08月09日 约耳测试:迈向高品质的12个步骤 – The Joel Test: 12 Steps to Bette