【C语言】字符函数和字符串函数(上)

server/2024/10/21 14:37:54/

本篇博客将讲解以下知识:

(1)字符分类函数

(2)字符转换函数

(3)strlen的使用和模拟实现

1、字符分类函数

C语言中有一一系列的函数是专门做字符分类的,就是字符是属于什么类型的字符的。

这些函数的使用都需要包含一个头文件:ctype.h

函数                                                                                                          如果函数的参数符合下列条件就返回真

iscntrl                   任何控制字符

isspace               空白字符,空格' ',换页‘f’,      换行'\n\,      回车'\r'        制表符‘\t’     ,   垂直制表符‘\v’

isxdigit                十六进制数字, 包含所有十进制数字字符,小写字母a~f,大写字母A~F

islower                小写字母   a~z

isupper               大写字母A~Z

isalpha               字母a~z或A~Z

isalnum              字母或者数字,a~z,A~Z,0~9

ispunct                标点符号,任何不属于数字或者字母的图形字符(可打印)

isgraph               任何图形字符

isprint                  任何可打印字符,包括图形字符和空白字符

该函数的具体用法可以通过官网网站来查看具体用法:cplusplus.com - The C++ Resources Network

这些函数的使用方法非常类似,以下面函数讲解来举例:

 int    islower  (int c)

islower是能够判断参数部分的c是否是小写字母的,通过返回值来说明是否是小写字母,入如果是小写字母,则返回非零的整数。如果不是小写字母,则返回0。

代码示例: 写一个代码,将字符串中的小写字母转大写,其它字符不变。

方法一:不使用库函数

方法二:使用库函数

2、字符转换函数

C语言提供了2个字符转换函数:

(1)int    tolower(int c)   ;//将参数传进的大写字母转换为小写

(2)int   toupper(int c);//将参数传进的小写字母转大写

注意:使用该两个函数时要包含头文件:ctype.h

示例:

代码示例: 写一个代码,将字符串中的小写字母转大写,其它字符不变。

方法三:

3、strlen的使用和模拟

strlen的原型:

size_t    strlen(const      char*   str)

strlen函数求的是字符串的长度,统计的是字符串中\0之前的字符个数,字符串中必须有\0.

(1)字符串以'\0',作为结束标志,strlen函数返回的是在字符串中‘\0’前面出现的字符个数(不包含‘\0’)

(2)参数指向的字符串必须要以‘\0’结束

(3)注意函数的返回值为size_t,是无符号的

(4)strlen的使用需要包含头文件:string.h

特殊代码:

注意:两个size_t类型的值相减,结果是无符号整数,即差大于0(零);

strlen的模拟实现方式:

(1)计数器的形式

(2)指针+-指针

(3)递归的形式

//1、计数器的形式

#include<stdio.h>
#include<assert.h>
int my_strlen(const char* str)
{
    int count = 0;
    assert(str != NULL);
    while (*str != '\0')
    {
        count++;
        str++;
    }
    return count;
}

//2、指针+-指针

#include<stdio.h>
#include<string.h>
int my_strlen(char* s)
{
    assert(s != NULL);
    char* p = s;
    while (*p != '\0')
    {
        p++;
    }
    return p - s;
}

//3、递归的形式---不创建临时变量


http://www.ppmy.cn/server/133649.html

相关文章

解析Gitxray:一种新的基于GitHub REST API的网络安全解决方案

关于Gitxray Gitxray是一款基于GitHub REST API的网络安全工具&#xff0c;支持利用公共 GitHub REST API 进行OSINT、信息安全取证和安全检测等任务。 Gitxray&#xff08;Git X-Ray 的缩写&#xff09;是一款多功能安全工具&#xff0c;专为 GitHub 存储库而设计。它可以用于…

3D Slicer 教程二 ---- 数据集

上一章下载3d slicer的软件,这章从加载数据集来弄清楚3dslicer怎么使用. 一. 加载数据集 如果没有数据集,也可用用样本数据. (1) "File" --> "add Data" 可以添加图片文件夹,(试了MP4不行,内镜的视频估计不支持),添加单个图片的话,会出现一些选项, …

管理沟通的艺术:跨越挑战,迈向卓越

在复杂多变的管理环境中&#xff0c;沟通不仅是信息传递的桥梁&#xff0c;更是管理工作的核心载体。它承载着所有管理活动的推进&#xff0c;是协同多人完成任务的基石。然而&#xff0c;沟通并非易事&#xff0c;尤其在技术管理者转型为全面管理者时&#xff0c;面临的挑战尤…

TwinCAT3 软件介绍

文章目录 软件界面各个窗口说明如下图&#xff1a; 工具栏说明如下&#xff1a; 调试按钮说明如下&#xff1a; TwinCAT运行环境按钮说明如下&#xff1a; PLC项目环境说明如下&#xff1a; TwinCAT系统状态图标说明如下&#xff1a; PLC程序状态说明如下&#xff…

模拟键盘输入卡号RFID读卡器银河麒麟桌面操作系统兼容适配认证测试报告

本测试报告使用读卡器&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.1d292c1b72i5j0&ftt&id702441469725

在Oxygen编辑器中支持数学公式

在编写文档时&#xff0c;经常需要插入公式。虽然将公式作为图片插入到文档中是可以的&#xff0c;但这会使后续的修改变得非常不便。目前&#xff0c;MathML (Mathematical Markup Language) 和 LaTeX 是两种常用的数学公式描述语言&#xff0c;它们各自具有不同的特点和适用场…

平安养老险深圳分公司:创新养老服务,深入践行金融为民

党的二十届三中全会《决定》提出&#xff1a;“积极发展科技金融、绿色金融、普惠金融、养老金融、数字金融&#xff0c;加强对重大战略、重点领域、薄弱环节的优质金融服务。” 为经济社会发展提供高质量服务&#xff0c;更好满足人民日益增长的美好生活需要&#xff0c;金融…

大数据毕业设计基于springboot+Hadoop实现的豆瓣电子图书推荐系统

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图 前言 文章底部名片&#xff0c;获取项目的完整演示视频&#xff0c;免费解答技术疑问 项目介绍 随着开数字化阅读的普及&#xff0c;豆瓣电子图书推荐系统应运而生&#xff0c;旨在为用户提供个性化的阅…