C语言---字符练习

目录

1.输入一个字符,判断其是否是字母(两种方法)

2.字母大小写转换(三种方法)


#include <stdio.h>

int main() {
    char a;
    while (scanf("%c", &a) != EOF) { // 注意 while 处理多个 case
        if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) {
            printf("%c is an alphabet.\n", a);
        }
        else {
            printf("%c is not an alphabet.\n", a);
        }
        getchar();//清除缓冲区,当输入字个字符之后,按下回车缓冲区会有一个‘\n’,会导致下次读字符的先读取它
    }
    return 0;
}
#include <stdio.h>

int main() {
    int a;
    while ((a=getchar()) !=EOF) { // 注意 while 处理多个 case
        if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) {
            printf("%c is an alphabet.\n", a);
        }
        else {
            printf("%c is not an alphabet.\n", a);
        }
        getchar();//清除缓冲区,当输入字个字符之后,按下回车缓冲区会有一个‘\n’,会导致下次读字符的先读取它
    }
    return 0;
}

scanf函数返回值,简单来说就是,它返回已成功赋值的数据个数;出错时则返回EOF.

(注:EOF(End Of File)是一个预定义的常量,等于-1.)


/ //字母大小写转化
#include <stdio.h>
#include<ctype.h>
int main() {
    int c = 0;

    while ((c = getchar()) != EOF) {
        if (isupper(c)) {//判断是否是大写字母
            printf("%c\n", tolower(c));//大写字母转小写
        }
        if (islower(c)) {//判断是否是小写字母
            printf("%c\n", toupper(c));//小写字母转大写
        }
    }
    getchar();//清除缓冲区字符

    return 0;
}

/*#include <stdio.h>
//a-97
//A-65
int main() {
    char c;

    while(scanf("%c",&c) != EOF){
        if(c<='Z'&&c>='A'){
            printf("%c\n",c+32);
        }
        if(c<='z'&&c>='a'){
            printf("%c\n",c-32);
        }
    }

    return 0;
}*/
/*#include <stdio.h>

int main() {
    int c=0;

    while ((c=getchar()) != EOF) {
        if (c <= 'Z' && c >= 'A') {
            printf("%c\n", c + 32);
        }
        if (c <= 'z' && c >= 'a') {
            printf("%c\n", c - 32);
        }
    }
    getchar();//清除缓冲区字符

    return 0;
}*/

getchar()一次只能读取一个字符,当输入换行字符‘\n’时,它也会读取,造成程序崩溃!!!

getchar函数是用于读取字符的,如果读取正常,则返回其读到的那个字符;如果读取错误或遇到文件末尾(end of file),则返回EOF。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值