前言:
在C语言学习中,字符函数和字符串函数是日常编程中使用频率极高的工具,无论是输入输出处理、数据校验还是字符串拼接、拷贝,都离不开它们。本文从零开始,用最通俗的语言、最清晰的代码示例,详解常用字符函数与字符串函数,适合新手入门、复习巩固。
一、字符函数(ctype.h)
字符函数主要用于单个字符的判断、转换,使用前需要包含头文件:
- isdigit —— 判断是否为数字字符
功能:检查字符是否是 0~9 的数字
返回值:是数字返回非0值,不是返回0
- isalpha —— 判断是否为字母
功能:检查字符是否是大小写字母
返回值:是字母返回非0,不是返回0
- islower/isupper —— 判断大小写字母
islower :判断是否为小写字母
isupper :判断是否为大写字母
- tolower/toupper —— 大小写转换
toupper :小写转大写
tolower :大写转小写
小知识:和你之前学的 字符-32 转大写原理一致,只是函数更安全、可读性更高。
二、字符串函数(string.h)
字符串函数用于处理以\0结尾的字符数组/常量字符串,必须包含头文件:
重点:C语言字符串必须以’\0’结束,所有字符串函数都依赖 \0 判断结束位置。
- strlen —— 求字符串长度
功能:计算字符串有效长度(不含 \0 )
返回值:无符号整数( size_t ),打印用 %zd
注意: strlen 遇到 \0 就停止,不计入结束符。
- strcpy —— 字符串拷贝
功能:把一个字符串完整复制到另一个字符数组(包含 \0 )
格式: strcpy(目标数组, 源字符串)
注意:目标空间必须足够大,否则会越界。
- strcat —— 字符串拼接
功能:把一个字符串追加到另一个字符串后面
格式: strcat(目标, 源)
- strcmp —— 字符串比较
功能:按ASCII值逐字符比较两个字符串
返回值:
相等 → 返回0
前 > 后 → 返回正数
前 < 后 → 返回负数
- strstr —— 查找子串
功能:在一个字符串中查找是否包含指定子串
返回值:找到返回子串地址,没找到返回 NULL
三、新手常踩坑总结
字符串必须带 \0 ,否则 strlen、strcpy 等函数会越界乱算
strlen 返回无符号数,不要和负数直接运算
strcpy/strcat 目标空间必须足够大、可修改
常量字符串不能修改,只能用 char* 指向,不能直接赋值修改
字符函数判断的是字符,不是数字(如 ‘5’ 是字符, 5 是整数)
四、总结
字符函数( ctype.h ):处理单个字符,判断、转换
字符串函数( string.h ):处理一串字符,求长、拷贝、拼接、比较、查找
掌握这些函数,是C语言处理文本数据的基础,也是笔试、面试高频考点
本文适合C语言初学者收藏学习,建议配合代码动手敲一遍,理解更快更牢固!