既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
string.h头文件中十一个重要的函数,笔记已经上传至gitee
笔记指路:函数
不仅仅有本文的函数,还持续更新其他函数类型的解释
文章目录
一、strcat 字符串追加
char * strcat ( char* strDestination, const char* strSource);
长度不受限制的字符串函数(与长度无关,不够安全)
返回类型:char * (目标空间的起始地址,dest)
参数类型:char * 、 const char*
前者是所要加添到目标数组,后者是需要加添的字符串(数组)
用途:在字符数组后面追加,黏贴另外一个数组
条件:
追加的时候保证目标空间足够大
追加的内容里必须有’\0’
char arr1[10] = "abs"; char arr2[] = "sd"; strcat(arr1, arr2);
1. strncat
char *strncat( char *strDest, const char *strSource, size_t count );
返回值:Each of these functions returns a pointer to the destination string.
这些函数都返回一个指向目标字符串的指针
字符串给自己添加自己的字符的时候
长度受限制的字符串函数
char arr[6] = "abc"; strncat(arr, arr, 2);//arr 变成 abcab char arr1[10] = "abs"; char arr2[] = "shd"; strncat(arr1, arr2, 6);//这里就算超过了追加数组的范围也只会加添到 //'\0'停止追加,与strncpy不同
二、strstr 字符串查找
查找字符串
char arr1[] = "ashwncecd"; char arr2[] = "hwn"; char\* p = strstr(arr1, arr2);//在arr1中,找arr2字符串
如果找到了,返回第一次出现相同字符,对应字符的地址(在查找的字符串里的字符)
如果没有找到,则返回空指针,如果查找的字符串是空字符串(只有’\0’),则返回被查找字符串的起始地址
三、strlen 求字符串长度
形参类型:const char* string
返回类型:size_t 无符号整型 – unsigned int
求字符串长度,遇到’\0’则停止
char arr[] = "abcdef";
int sz = strlen(arr);
易错点:
char arr1[] = "abc"; char arr2[] = "abcde"; if(strlen(arr1) - strlen(arr2) < 0) { printf("1"); } else { printf("0"); }
分析:这里的strlen(arr1) - strlen(arr2)
因为计算机在处理不同类型数相加减时,哪个能表示更大的数就转为哪个类型,这里只有unsigned int类型,最大值为2^32-1,所以往unsigned int 转,所以结果为一个无符号整型是整数
四、strcpy 字符串拷贝
字符串拷贝
长度不受限制的字符串函数(与长度无关,不够安全)
将一个字符串拷贝到另外一个字符串中
char* strcpy ( char * strDestination, const char* strSource );
char arr1[20] = "abc";
char arr2[] = "abdws";
strcpy(arr1, arr2);
//将arr2的内容拷贝到arr1中,记得判断arr1的大小是否>=arr2
只拷贝到第一个’\0’截止
拷贝的内容必须有’\0’,不然会非法越界访问
目标空间需要足够大
目标空间必须可以改变(前没有const)
1. strncpy
长度受限制的字符串函数
char *strncpy( char *strDest, const char *strSource, size_t count );
返回值:Each of these functions returns strDest (返回目标数组首元素地址)
char arr1[20] = "abcdef"; char arr2[] = "xshw"; strncpy(arr1, arr2, 4);//将4个字符拷贝进去 strncpy(arr1, arr2, 7);//遇到'\0'停止,剩下3个字符由'\0'代替
五、strcmp 字符串比较
比较两个字符串内容大小,而不是长度
长度不受限制的字符串函数(与长度无关,不够安全)
参数:int strcmp( const char *string1, const char *string2 );
返回值:
Value Relationship of string1 to string2 < 0 string1 less than string2 0 string1 identical to string2 > 0 string1 greater than string2 注意:
返回负数或者正数不一定是 - 1 或者 1
比较到其中一个字符串遇到’\0’,或两个字符不相等时停止
实例:
char arr1[] = "abcd"; char arr2[] = "abd"; int ret = strcmp(arr1, arr2);
比较到c和d两个元素,c比d小,所以arr1相对而言比较小
返回负数
1. strncmp
长度受限制的字符串函数
int strncmp( const char *string1, const char *string2, size_t count );
指定比较到几个字符
返回值:
Return Value Description < 0 string1 substring less than string2 substring 0 string1 substring identical to string2 substring > 0 string1 substring greater than string2 substring
六、strtok 字符串划分
char *strtok( char *strToken, const char *strDelimit );
被划分的字符串, 用作划分的符号的集合
返回值:All of these functions return a pointer to the next token found in strToken.
返回标记元素的首元素地址,如果标记查找完,返回空指针
被划分的字符串中需要包含,分割符号
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
to the next token found in strToken.
返回标记元素的首元素地址,如果标记查找完,返回空指针
被划分的字符串中需要包含,分割符号
[外链图片转存中…(img-9Nbd0M1V-1715697692113)]
[外链图片转存中…(img-USr64CLy-1715697692114)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!