C语言 字符串函数使用

        先看一下字符串函数一览表

一、strlen(求字符串长度)

声明:size_t strlen ( const char * str );

strlen统计的是‘/0’之前的字符个数,到‘/0’就结束了。

注意 函数的返回值为size_t,是⽆符号的

使用:在使用时需要包含头文件<string.h>

模拟:

二、长度不受限制的字符串函数

(1)strcpy(复制字符串函数)

声明:char* strcpy(char * destination, const char * source );

注意: strcpy在使用时必须保证目标函数足够大,以确保源字符串能够放入(防止越界访问),它会将源字符串一个一个搬运,以‘\0’结束,并将‘\0'拷贝到目标空间。                                               目标空间必须可修改(所以就不能用const修饰了)。

如果没有'\0' strcpy就不知道什么时候结束拷贝

使用:

模拟:

(2)strcat(字符串连接)

声明:char * strcat ( char * destination, const char * source );

strcat会将源字符串追加到目标函数的尾部。

注意:目标字符串中必须含有’\0‘否则不知道从哪里开始追加,源字符串必须以'\0‘结束,不然因为程序不知道追加到哪里停止。在连接时会覆盖目标函数中的’\0‘,并在合并的结尾加一个'\0'。      必须保证目标函数足够大,以确保源字符串能够放入。

使用:在使用时需要包含头文件<string.h>

模拟:

(3)strcmp(字符串的比较)

声明:int strcmp ( const char * str1, const char * str2 );

strcmp在比较时是根据对应位置上不同字符串的大小来确定的,对每一对应位置上的字符的ASCII码值的⼤⼩进行比较,直到发现不相等位置。

第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字
 第⼀个字符串等于第⼆个字符串,则返回0
第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字

注意:返回的时大于0或小于0的数,而非1或-1.

使用:在使用时要包含头文件<string.h>

模拟:

三、长度受限制的字符串函数

(1)strncpy(长度受限制的复制字符串函数)

声明:char * strncpy ( char * destination, const char * source, size_t num );

这里的前两个类型和strcpy函数的参数类型一致,一个指针存放目标字符串地址,一个指针存放待拷贝的字符串地址,这里的参数多了一个size_t类型(无符号整型)的num,是用来控制拷贝字符个数的,这里的num是几就从source中拷贝几个字符串到destination中。

注意:如果源字符串的⻓度⼩于num,则拷⻉完源字符串之后,在⽬标的后边追加0,直到num个

使用:

模拟:

(2)strncat(长度受限制的字符串追加)

声明:char * strncat ( char * destination, const char * source, size_t num );

strncat会将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加⼀个 \0 字符。

注意:如果source指向的字符串的⻓度⼩于num的时候,只会将字符串中到\0 的内容追加到destination指向的字符串末尾
使用:

模拟:

(3)strncmp(长度受限制的字符串拷贝)

声明:int strncmp ( const char * str1, const char * str2, size_t num );

strncmp在使用时⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等,就是相等返回0。

使用:

模拟:

四、strsrt(字符串查找)

声明:char * strstr ( const char * str1, const char * str2);

在str1查找整个str2第一次出现位置,并返回一个指向该位置的指针。如果str2没有完整地出现在str1的任何地方,函数返回NULL指针。如果str2是一个空字符串,函数返回str1指针。

使用:

模拟:

五、strtok(字符串分割函数)

声明:char * strtok ( char * str, const char * sep);

sep参数指向⼀个字符串,定义了⽤作分隔符的字符集合
第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标
记。
strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。(注:
strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容
并且可修改。)
strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串
中的位置。
strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标
记。
如果字符串中不存在更多的标记,则返回 NULL 指针

六、strerror(错误信息报告)

参数及返回类型:char * strerror ( int errnum );

strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来

使用:

总:如果写的有问题欢迎在评论区进行指导。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值