一些字符串函数的对比
发布日期:2021-05-07 11:07:45 浏览次数:22 分类:精选文章

本文共 1127 字,大约阅读时间需要 3 分钟。

一.strcat和strncat(字符串拼接函数)

strcat strncat
char *strcat(char *destination,const *source) char *strcat(char *destination,const *source) ,size_t num
源字符串必须以’\0’结尾 相同
拼接起始位置:目标字符串’\0’处 相同
目标的空间必须有足够的大,能容纳源字符串的内容 相同
目标的空间必须可以被修改 相同
返回值:原目标处 相同
不可以给自己拼接 可以给在自己拼接
不可设定,拼接到源字符串’\0’处 可以设定拼接的字符串元素个数num,如果源字符串元素个数小于num则复制到终止字符串内容为止

1.1strcat正常拼接演示

在这里插入图片描述
1.2strcat拼接自身演示(自身不可拼接)
在这里插入图片描述
1.3strncat拼接自身演示
在这里插入图片描述
1.4strncat 源字符串小于num演示
1.4.1源字符串是自身时(明显出现错误)
在这里插入图片描述
1.4.2拼接的源字符串不是自身,拼接到源字符’\0’处
在这里插入图片描述

二.strcpy和strncpy

strcpy strncpy
char *strcpy(char *destination,const *source) char *strcpy(char *destination,const *source) ,size_t num
源字符串必须以’\0’结尾 相同
源字符串中的’\0’会被拷贝到目标空间 相同
目标的空间必须有足够的大,能容纳源字符串的内容 相同
目标的空间必须可以被修改 相同
不可设定拷贝的元素个数 可以设定拷贝的字符串元素个数num,如果源字符串元素个数小于num则在目标的后边追加0,直到num个

1.strcpy拷贝演示

拷贝前:
在这里插入图片描述
拷贝后:
在这里插入图片描述
2.strncpy拷贝演示
设置拷贝的元素个数num个,
在这里插入图片描述
很明显strncpy拷贝的时候不会自动添加\0,而是拷贝源字符串的\0,因此在用的时候要预留好\0的位置;

三.strcmp和strncmp

strcmp strncmp
int strcmy(const char *str1,const char *str2) int strcmy(const char *str1,const char *str2,size_t num)
比较的是字符串元素的ASCII码值,在遇到\0之前,str1和str2如果相等就一直比下去,直到遇到\0 相同
str1>srt2,返回值大于1 相同
str1<srt2,返回值小于1 相同
str1=srt2,返回值小于0 相同
不可设置 可以设置比较的元素个数

strcmp和strncmp的对比演示

在这里插入图片描述

上一篇:memcpy和memmove的区别:内存重叠
下一篇:scanf gets fgets的差别

发表评论

最新留言

很好
[***.229.124.182]2025年04月07日 18时21分00秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章