八.strncmp
运用场景:
九.strncat
PS:与strcmp对比,解决了无法自己追加自己的问题
特性:
- strncat追加的字符串后面还是有\0
- 追加的个数n,不包含\0
一:情景: "自己追加自己"可行
原理:
strncat追加的字符串后面还是有\0,---解决了\0被覆盖从而无法读取的情况
运用场景:
十.strstr(在一个字符串中查找另一个字符串是否存在)
返回值的情况:
- 存在:返回子串第一次出现的位置
- 不存在: 返回NULL
使用场景:
1.模拟实现strstr
原理:分别设置两个比对指针s1,s2,设置一个指针p记录开始匹配的位置
代码实现:
十一.strtok(字符串分解为数组字符串)
PS: str 为待分解字符串,delim 为分隔符(也为字符串)
综述:
返回值:
该函数返回被分解的第一个子字符串
如果没有可检索的字符串,则返回一个空指针(str!NULL即可控制循环)
使用要点:
存储分割符的字符串p,分割一次后会自动跳到下一个字符
strtok有记忆功能,会记住他改变的地址
第一次如果传回非空,则第二次一定要传回NULL!!!!!!!!!!!!!
(第一次传入非空,将会从str中找到第一个分隔符处的位置,并记忆;第二次传入NULL,是为了确保函数从第一次操作中记忆的位置再次开始运行,寻找下一个标记)
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<ctype.h> #include<string.h> int main() { char arr[] = "yy@qq.com"; char buf[200] = { 0 }; strcpy(buf, arr); const char* p = "@."; char* str = NULL; //第一次传入buf为非空,则接下来在此循环一定要传入NULL for (str = strtok(buf, p); str != NULL; str = strtok(NULL, p)) { printf("%s\n", str); } return 0; } 输出结果: yy qq com
十二.strerror(翻译错误码)
错误码:0,1,2,3,4(C语言中库函数报错时的错误码)
功能:接收错误码并把错误码转换成错误信息
PS:errno是c语言提供的全局的错误变量,当调用时,错误码就会存进去
应用场景:
十三.perror(显示函数错误原因)
要点:
- 相当于printf与strerror的结合
- 可以加入自定义内容
- 使用场景:
十四.字符分类函数
1.字符分类函数的头文件
#include<ctype.h>
2.字符分类函数总览
一.演示用例:isdigit函数(判断是否为数字字符)
返回值:非数字字符返回0;数字字符返回非0;
使用场景:
十五.字符转化函数(大小写英文字符转换)
1.字符转化函数的头文件
#include<ctype.h>
2.字符转化函数总览
返回值:
- toupper;返回转换后的大写字母,若不须转换则将参数c值返回。
- tolower;返回转换后的小写字母,若不须转换则将参数c值返回。
运用场景:
一: 运用场景:把字符串中的小写转成大写
int main() { char arr[] = "Hello"; char* p = arr; while (*p++) { //把所有字符先变成小写,再变成大写 if (islower(*p)) { *p = toupper(*p); } } printf("%s", arr); return 0; }