#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 100 int main() { char a[N]; int i; scanf("%s", a); for (i = 0; a[i] != '\0'; i++) { if ('A' <= a[i] &&a[i]<= 'Z') printf("%c", a[i]+32); else printf("%c", a[i]); } system("pause"); return 0; }
以上是错误的代码它只会将大写字母转换成小写字母而小写字母无法原样输出。错误原因:出现if语句的判断上面,因为‘A'<=a[i]无论是真是假都会满足表达式为真,即if语句
的条件是恒成立的那么它就无法执行下面的else语句。正确代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 100 int main() { char a[N]; int i; scanf("%s", a); for (i = 0; a[i] != '\0'; i++) { if ('A' <= a[i] &&a[i]<= 'Z') printf("%c", a[i]+32); else printf("%c", a[i]); } system("pause"); return 0; }小结:在编写程序的过程中一定要注意if的判断条件。