C C++最全string(1),如何才能通过一线互联网公司面试

img
img

既有适合小白学习的零基础资料,也有适合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 );

返回值:

ValueRelationship of string1 to string2
< 0string1 less than string2
0string1 identical to string2
> 0string1 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 ValueDescription
< 0string1 substring less than string2 substring
0string1 substring identical to string2 substring
> 0string1 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.

返回标记元素的首元素地址,如果标记查找完,返回空指针

被划分的字符串中需要包含,分割符号


img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

to the next token found in strToken.

返回标记元素的首元素地址,如果标记查找完,返回空指针

被划分的字符串中需要包含,分割符号


[外链图片转存中…(img-9Nbd0M1V-1715697692113)]
[外链图片转存中…(img-USr64CLy-1715697692114)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值