网站策划建设,做网站需要多少钱济宁,继续网站建设,免费下载模板ppt#x1f466;个人主页#xff1a;Weraphael ✍#x1f3fb;作者简介#xff1a;目前是C语言学习者 ✈️专栏#xff1a;C语言航路 #x1f40b; 希望大家多多支持#xff0c;咱一起进步#xff01;#x1f601; 如果文章对你有帮助的话 欢迎 评论#x1f4ac; 点赞个人主页Weraphael ✍作者简介目前是C语言学习者 ✈️专栏C语言航路 希望大家多多支持咱一起进步 如果文章对你有帮助的话 欢迎 评论 点赞 收藏 加关 前言 以下所以库函数的查阅都在cplusplus网站以下字符串函数在使用前都要加上#include string.h 目录前言1.strlen1strlen函数介绍2strlen函数用法3strlen函数的注意事项4strlen函数的模拟实现三种2.strcpy1strcpy函数介绍2strcpy函数用法3strcpy函数的注意事项4strcpy函数的模拟实现3.strcat1strcat函数介绍2strcat函数用法3strcat函数的注意事项4strcat函数的模拟实现4.strcmp1strcmp函数介绍2strcmp函数用法3strcmp函数的模拟实现5.strncpy1strncpy函数介绍2strncpy函数用法3strncpy函数的注意事项4strncpy函数的模拟实现6.strncat2strncat函数用法3strncat函数的注意事项4strncat函数的模拟实现7.strncmp1strncmp函数介绍2strncmp函数用法8.strstr2strstr函数用法3strstr函数的模拟实现9.strtokstrtok函数介绍及用法10.strerror1strerror函数介绍2strerror的用途3 类似函数perror1.strlen
1strlen函数介绍 功能计算的是字符串中’\0’前面出现的字符个数不包含’\0’
2strlen函数用法 3strlen函数的注意事项 参数指向的字符串必须要以’\0’结束注意函数的返回值是size_t是无符号的因为字符串的长度不可能为负数 4strlen函数的模拟实现三种
①计数器count ②递归法 详细解析请参考《递归篇》 点我跳转 ③指针 - 指针 详情解析请参考《初识指针》点我跳转 2.strcpy
1strcpy函数介绍 功能拷贝字符串 2strcpy函数用法 3strcpy函数的注意事项 源字符串必须以‘\0’结束目标空间必须足够大以确保能放下源字符串目标空间必须可变不能用const修饰 4strcpy函数的模拟实现 3.strcat
1strcat函数介绍 功能在字符串后追加字符串 2strcat函数用法 3strcat函数的注意事项 源字符串必须以‘\0’结束目标空间必须要以’\0’结束目标空间必须足够大能容纳源字符串的内容保证目标空间可修改不能加const修饰strcat不能自己给自己追加 解释 字符串追加是从目标空间的’\0’开始追加的追加时会把’\0’覆盖掉这样字符串就没有结束标志导致覆盖\0后源字符串没有以\0结尾导致死循环 4strcat函数的模拟实现 4.strcmp
1strcmp函数介绍 功能比较字符串大小字典序 2strcmp函数用法 3strcmp函数的模拟实现 5.strncpy
1strncpy函数介绍 strncpy与strcpy的功能相同都是拷贝字符串不同的是strncpy可以控制拷贝字符串的长度
2strncpy函数用法 3strncpy函数的注意事项 因为受拷贝长度限制strncpy不会拷贝源字符串的’\0’看用法而strcpy会拷贝源字符的’\0’如果源字符串的长度小于num则拷贝完源字符串之后它会在目标空间后面自动追加’\0’直到num个 4strncpy函数的模拟实现 6.strncat strncat与strcat的功能相同都是字符串追加不同的是strncat可以控制拷贝字符串的长度 2strncat函数用法 3strncat函数的注意事项 strncat在目标字符数组追加完之后会自动补’\0’所以它可以自己追加自己 4strncat函数的模拟实现 7.strncmp
1strncmp函数介绍 与strcmp的功能相同都是字符串比较不同的是strncmp可以控制字符串比较的长度 2strncmp函数用法 8.strstr 功能从str1中找str2找子串 2strstr函数用法 3strstr函数的模拟实现
【分析】 情况1 情况2 【代码实现】
#include stdio.h
#include string.h
char* my_strstr(const char* str1, const char* str2)
{//当str2为空串直接返回str1的地址if (*str2 \0){return str1;}//用s1和s2代替str1和str2来遍历const char* s1 str1;const char* s2 str2;//p记录str1的位置const char* p str1;while (*p){s1 p;s2 str2;while (*s1 ! \0 *s2 ! \0 *s1 *s2){s1;s2;}//*s2\0说明找到子串了if (*s2 \0){return p;}//循环中s1和s2不相等让p找下一个位置p;}//当*p ‘\0’说明p遍历完整个数组都没找到子串return NULL;
}
int main()
{char arr1[] abbbbcdef;char arr2[] \0;char* res my_strstr(arr1, arr2);//从arr1中找arr2if (res NULL){printf(找不到\n);}else{printf(找到了%s\n, res);}return 0;
}9.strtok
strtok函数介绍及用法 功能分割字符串 【解析】 如上图delimiters参数是一个字符串它是分割符的字符集合str是被切割的字符串不能用const修饰函数返回类型是char* strtok的作用 strtok找到str中的分割符并把分割符变成\0再返回一个指向这个标记的起始地址 ①strtok函数的第一个参数不为 NULL 函数将找到str中第一个标记strtok函数将保存它在字符串中的位置。 ②strtok函数的第一个参数为 NULL 函数将在同一个字符串中被保存的位置开始查找下一个标记。 【完整版】 10.strerror
1strerror函数介绍 功能返回错误码所对应的错误信息 C语言的库函数在运行的时候如果发生错误就会将错误码存在一个全局变量这个变量是errno 这些错误码通常是一些数字1,2,3,4,5… 2strerror的用途 fopen函数简介 【用法实现】 3 类似函数perror 功能直接打印错误信息在打印错误信息前会先打印自定义的信息 【用法展现】