【C语言】标准库ctype.h(判断和映射字符)

【C语言】标准库ctype**.**h:判断和映射字符。

cs 复制代码
#include <ctype.h>

标准库ctype**.**h:

函数中的参数:都是无符号字符转换为int值进行传递。

判断函数中的返回:若满足判断条件,返回非零值。若不满足判断条件,返回0。

转换函数中的返回:若有对应的大写/小写字母,返回转换后的字符(转换为int值)。若没有,返回原字符(转换为int值)。

cs 复制代码
// 部分函数举例
#include <ctype.h>
#include <stdio.h>

// 函数声明
char trans(char c);

int main(void)
{
    char s[] = "year:2024.\tGOOD LUCK!\n";
    int n = sizeof(s);              // 获取字符串s的内存大小
    int c;                          // 将要被判断的字符,转为int值作为参数传递给函数
    char t[n];                      // 字符串t,此处存储大小写转换后的字符串
    for(int i = 0; i < n; i++)
    {
        c = s[i];
        t[i] = c; 
        if(isdigit(c))              // 判断字符是否是数字   
            printf("index %d element:\"%c\" is digit\n", i, c);
        else if(isalpha(c))         // 判断字符是否是字母
        {
            printf("index %d element:\"%c\" is ", i, c);
            t[i] = trans(c);        // 函数,大小写字母转换
        }
        else if(isspace(c))         // 判断字符是否是空白字符
            printf("index %d element:\"%c\" is space\n", i, c);
        else if(ispunct(c))         // 判断字符是否是标点符号
            printf("index %d element:\"%c\" is punctuation\n", i, c);            
    }
    printf("End: t = %s", t);
    return 0;
}

char trans(char c)
{
    if(islower(c))                 // 判断字符是否是小写字母
    {
        printf("lowercase letter, convert to uppercase letter\n", c);
        return toupper(c);         // 小写字母转为大写字母
     }
    else if(isupper(c))            // 判断字符是否是大写字母
    {
        printf("uppercase letter, convert to lowercase letter\n", c);
        return tolower(c);         // 大写字母转为小写字母
    }
}

// 结果:
index 0 element:"y" is lowercase letter, convert to uppercase letter
index 1 element:"e" is lowercase letter, convert to uppercase letter
index 2 element:"a" is lowercase letter, convert to uppercase letter
index 3 element:"r" is lowercase letter, convert to uppercase letter
index 4 element:":" is punctuation
index 5 element:"2" is digit
index 6 element:"0" is digit
index 7 element:"2" is digit
index 8 element:"4" is digit
index 9 element:"." is punctuation
index 10 element:"      " is space
index 11 element:"G" is uppercase letter, convert to lowercase letter
index 12 element:"O" is uppercase letter, convert to lowercase letter
index 13 element:"O" is uppercase letter, convert to lowercase letter
index 14 element:"D" is uppercase letter, convert to lowercase letter
index 15 element:" " is space
index 16 element:"L" is uppercase letter, convert to lowercase letter
index 17 element:"U" is uppercase letter, convert to lowercase letter
index 18 element:"C" is uppercase letter, convert to lowercase letter
index 19 element:"K" is uppercase letter, convert to lowercase letter
index 20 element:"!" is punctuation
index 21 element:"
" is space
End: t = YEAR:2024.     good luck!

补充:

if...else if...else...:若执行语句只有单行,可以省略大括号{ };若执行语句超过一行,必须使用大括号{ }。

相关推荐
JJJJ_iii10 小时前
【左程云算法09】栈的入门题目-最小栈
java·开发语言·数据结构·算法·时间复杂度
枫叶丹410 小时前
【Qt开发】显示类控件(三)-> QProgressBar
开发语言·qt
三体世界10 小时前
测试用例全解析:从入门到精通(1)
linux·c语言·c++·python·功能测试·测试用例·测试覆盖率
Bear on Toilet10 小时前
继承类模板:函数未在模板定义上下文中声明,只能通过实例化上下文中参数相关的查找找到
开发语言·javascript·c++·算法·继承
程序员东岸10 小时前
C语言入门指南:字符函数和字符串函数
c语言·笔记·学习·程序人生·算法
码猿宝宝11 小时前
浏览器中javascript时间线,从加载到执行
开发语言·javascript·ecmascript
OEC小胖胖11 小时前
App Router vs. Pages Router:我应该如何选择?
开发语言·前端·前端框架·web·next.js
max50060011 小时前
OpenSTL PredRNNv2 模型复现与自定义数据集训练
开发语言·人工智能·python·深度学习·算法
Pocker_Spades_A11 小时前
Python快速入门专业版(二十八):函数参数进阶:默认参数与可变参数(*args/**kwargs)
开发语言·python
努力努力再努力wz11 小时前
【c++进阶系列】:map和set的模拟实现(附模拟实现的源码)
java·linux·运维·开发语言·c++