C语言进阶(4)

字符串库函数

1.求字符串长度的函数strlen

size_t strlen( const char *string );

求字符串长度时传给的是首个字母的地址,该函数的返回类型是无符号整形,该函数的原理是将字符串从首个向后进行依次检索直到为\0。如果字符串没有\0,那么该函数没有意义,得到的是随机值。下面是使用示范

当我们打印字符串时我们可以将直接使用printf("%s\n ", a);的形式进行打印

下面书写一个一个自己实现strlen的函数

 长度不受限的字符串函数有strcpy,strcat,strcmp操作的字符串没有进行限制。

 长度受限的字符串函数有strncpy,strncat,strncmp,较长度受限的字符串函数,对操作的字符串进行限制。

2.字符串拷贝函数

字符串函数是对将源字符拷贝到目标字符

char *strcpy( char *strDestination, const char *strSource ),函数返回值是char*形式,返回的是目标字符串的地址,基本原理就是将源字符进行赋值到目标字符串

使用示例是

由上图我们可以知道strcpy是将源字符串赋值给目标并加上一个‘\0’,我们要注意目标字符串的空间是否充足,防止形成越界访问,目标字符串必须可变。而strncpy可以限制拷贝源字符串的数量。如图

可以看出strncpy是将目标替换后不补不上‘\0’

下面是自己实现strcpy

3.字符串追加函数

strcat是将目标字符串添加到源字符串后面,并加上一个‘\0'。

char *strcat( char *strDestination, const char *strSource );返回的是目标字符串的首地址,原理就是将源字符串先检索到’\0‘,然后添加目标字符串,然后再加上一个‘\0'。同时也要注意我们要将目标字符串函数保留足够空间和可修改,还有strcat不能自己对自己使用

使用示例

对于strncat同样 也是限制了追加的源字符串的元素个数,如下

 自行实现strcat的函数,如下

4.字符串比较函数

strcmp是比较两个字符串,流程是一个一个比较字母,对于不同的字母的ASSIC码值,只要前面值大就不要比较后面了

int strcmp( const char *string1, const char *string2 );返回值是如果大于就返回正值,如果小于就返回负值,如果等于就返回0。

下面是使用示例

 

同样的strncmp就是比较的位数,如下

 

自己实现strcmp,如下

 

5.strstr库函数

strstr是将查目标字符串中有没有 源字符串

char *strstr( const char *string, const char *strCharSet );返回的是第一个出现源字符串的前一个的地址,如果找不到就返回NULL。

下面是使用示例

下面是自己实现strstr

 

6.strtok字符串分割

strtok是将字符串中的分割点预先放到一个数组中,然后库函数会根据分割点替换成‘\0'然后第一次将起始位置返回,就可以打印出第一段;后面调用函数时只要传NULL和分割点数组名就可以了,它会根据上一次第一个分割点然后看后面分割点替换成‘\0'然后返回这一次起始位置后面以此类推,直到没有分割点就返回NULL;

char *strtok( char *strToken, const char *strDelimit );由于strtok会修改目标数组我们通常会复制一个数组,给strtok操作;

下面就是使用示例

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值