C语言字符串的常见的函数

#include<string.h>

size_t strlen(char const *string)返回值是一个无符号数:

if(strlen(X)-strlen(Y)>=0)和if(strlen(X)>=strlen(Y))事实上是不相等的。①是必然为真的,因为两个无符号数相减返回值是一个无符号数,必然大于等于零②这种方式可以正确的比较大小。或者我们可以强转成(int)类型。

char* strcpy(char*s,char const*src);

这个函数是要覆盖之前的字符串(以NUL结尾),要保证目标数组有足够的空间来容纳原字符串(C语言不会检测这种错误),如果没有足够的空间,会覆盖原数组后面地址的空间,会造成很多意想不到的麻烦。

char*strcat(char*dst,char  const*src);

它要求dst参数必须已经包含一个字符串,(可以使空字符串)。函数找到这个字符串的结尾,并把目标字符串复制到结尾,这个同样要求目标字符数组有足够的空间。

int strcmp(char const*s1,char const*s2)

返回值为0,-1,+1,注意:!当为零时是两个字符串相等;参数必须以NUL结尾,不然一直比较下去没有意义!

下面来谈一下有字符限制的字符串函数:

char*strncpy(char*dst,char const *src,size_t len)


strncpy调用的结果可能不是一个字符串,因为字符串必须以NUL字节结尾,而这个函数结果并不会以NUL字节结尾。要手动在结尾加上,这样才是一个字符串。

char*strncat(char*dst,char const *src,size_t len)

它和strncpy不同,会在在结尾加上NUL字节。

int strncpy(char const*s1,char const*s2,size_t len)

比较两个字符串最多比较len个字节。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值