自学内容网 自学内容网

【C/C++】字符/字符串函数(0)——由ctype.h提供

零.导言

        众所周知,C语言的字符有许多不同的类型,如:数字,字母,标点符号等等等等。

        今天,我就给大家讲解一下用于实现字符分类的函数——字符分类函数


一.什么是字符分类函数?

        即实现字符分类的函数,如:当你输入一个字符,这类函数便会帮你判断你输入的字符是否是某一类,如果是,就返回非0的整数;不是,就返回0


二.字符分类函数有哪些类型?

        有以下几种类型:

函数如果它的参数符合下列条件就返回真
iscntrl任何控制字符
isspace空白字符:空格:' ',换页:'\f',换行:'\n',回车:'\r',制表符:'\t',垂直制表符:'\v'
isdigit十进制数字:'0'~'9' 字符
isxdigit十六进制数字:'0'~'9' 字符,小写字母'a'~'f',大写字母'A'~'F'
isupper大写字母'A'~'F'
islower小写字母'a'~'f'
isalpha字母'a'~'f','A'~'F'
isalnum字母或数字'0'~'9','a'~'f','A'~'F'
ispunct标点符号,以及不属于数字和字母的可打印图形字符
isgraph图形字符
isprint可打印字符

        这里我简单介绍了11种字符分类函数,我将会详细讲解如何使用这些函数。


三.字符分类函数要如何使用?

        请看下列代码:

int main() 
{
    char ret = 0;
    scanf("%c", &ret);
    int arr[11] = { 0 };
    int* p = &arr[0];
    *p = iscntrl(ret);
    *(p + 1) = isspace(ret);
    *(p + 2) = isdigit(ret);
    *(p + 3) = isxdigit(ret);
    *(p + 4) = isupper(ret);
    *(p + 5) = islower(ret);
    *(p + 6) = isalpha(ret);
    *(p + 7) = isalnum(ret);
    *(p + 8) = ispunct(ret);
    *(p + 9) = isgraph(ret);
    *(p + 10) = isprint(ret);

    for (int i = 0; i < 11; i++)
    {
        if (p[i] != 0)
        {
            printf("y ");
        }
        else
        {
            printf("n ");
        }
    }

    return 0;
}

        输入的字符是某一类时,对应的函数就返回非0的整数;如果不是,就返回0。

        测试:

        

        显然,'a' 属于十六进制数字,小写字母,字母,字母或数字,图形字符,可打印字符


四.字符分类函数使用的意义

        可以帮助我们快速的对字符进行分类,节省我们写代码的时间。

        同时,也让我们的代码变得更加的简短易懂了。


五.字符分类函数的相关链接

        【C/C++】字符/字符串函数(0)(补充)——由ctype.h提供-CSDN博客

        【C/C++】字符/字符串函数(1)——由string.h提供-CSDN博客

        【C/C++】字符/字符串函数(2)——由string.h提供-CSDN博客

        【C/C++】字符/字符串函数(3)——由string.h提供-CSDN博客



原文地址:https://blog.csdn.net/bitenum/article/details/143446969

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!