大小写转换,遇到@跳出
我们希望可以从键盘接收一些字符,并且当这些字符是大写字母时转换为小写字符,是小写字符时转换成大写字符,其他字符不转换,遇到@跳出循环。
1、我们利用getchar函数从键盘接收字符,将其置于while(1)中,使之可以一直接收字符;
2、判断接收到的 字符是否为@,若是@则跳出循环;
3、给main()函数植入两个函数分别判别大小写字母,分别记作isSmallLetter(char ch)和isBigLetter(char ch);我们的函数只有返回值是或不是对应的大小写字符,所以为了节省内存,我们可以采用c99之后的编译器支持的内联函数inline或是使用带参数的宏;我建议使用带参数的宏,我将内联函数的使用方法注释掉了,读者可根据需要重新调用。
4、在判断完大小写字符后输出对应的值采用putchar()函数,实现大小写的转换与输出;
5、打印结果。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define isSmallLetter(ch) (ch >= 'a' && ch <= 'z')
int isBigLetter(char ch) {
return ch >= 'A' && ch <= 'Z';
}
//inline int isSmallLetter(char ch) {
// return ch >= 'a' && ch <= 'z';
//}
int main() {
char ch;
printf("请输入一串字符:\n");
while (1) {
ch = getchar();
if (ch == '@') {
break;
}
if (isSmallLetter(ch)) {
putchar(ch - 32);
}
else if (isBigLetter(ch)) {
putchar(ch + 32);
}
else {
putchar(ch);
}
}
system("pause");
return 0;
}