字符函数与字符串函数(1)

一.strlen函数--size_t strlen ( const char * str )

求字符串长度

注意函数的返回值是无符号的size_t的类型,用来作比较的话相减的会是一个无符号的值(一定是正的)(易错)

strlen函数的实现(计算法)

二.strcpy函数--char* strcpy(char * destination, const char * source)

拷贝字符串内容到另外一个字符串

源字符串必须以 '\0' 结束。

会将源字符串中的 '\0' 拷贝到目标空间。

目标空间必须足够大,以确保能存放源字符串。

目标空间必须可变。(不能是常量字符串,如char* arr1 = “abcdfg”)

strcpy函数实现:

三.strcat函数--char * strcat ( char * destination, const char * source )

追加字符串(将一个字符串加到另一个字符串里面)

源字符串必须以 '\0' 结束。

目标空间必须有足够的大,能容纳下源字符串的内容。

目标空间必须可修改。

字符串自己给自己追加,如何?

答案:

strcat的实现:

1.找到源字符串的/0的位置。

2.再把源字符串拷贝发到目标空间(找到目标空间的/0)

四.strcmp函数--int strcmp ( const char * str1, const char * str2 );

标准规定:

第一个字符串大于第二个字符串,则返回大于0的数字

第一个字符串等于第二个字符串,则返回0

第一个字符串小于第二个字符串,则返回小于0的数字

注意:strcmp函数比较的不是字符串的长度!而是比较字符串中对应字符的大小,如果相同,就比较下一对,直到不同或者都遇到\0。

strcmp函数的实现:

以上函数是长度不受限制的函数(可能有越界,造成程序崩溃的风险),接下来是长度限制函数(就是以上函数的限制版):

一.strncpy函数--char *strncpy( char *strDest, const char *strSource, size_t count );

拷贝num个字符从源字符串到目标空间。

如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。

二.strncat函数--char *strncat( char *strDest, const char *strSource, size_t count );

注意:其实将源字符串追加过去的时候是多增加了一个\0的

三.strncmp函数--int strncmp( const char *string1, const char *string2, size_t count );

比较到出现另个字符不一样或者一个字符串结束或者num个字符全部比较完

当比较出大小时,就不再往后面比较

几个有趣的函数:

一.strstr函数--char *strstr( const char *string, const char *strCharSet );

在源字符串里面找它的子字符串,找到并返回目标开始的地址

strstr函数的实现:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值