我是靠谱客的博主 积极发箍,最近开发中收集的这篇文章主要介绍【C】字符串库函数及其模拟实现(中)—— strncpy | strncat | strncmp4.strncpy5.strncat6.strncmp,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
本文重点
- 4.strncpy
- 5.strncat
- 6.strncmp
正文开始@边通书
????上篇文章介绍了没有长度限制的几个字符串库函数
strcpy
,strcat
,strcmp
,它们就是上来就是干,直至 为止,是不太安全的。
本文将继续介绍相对安全的几个有长度限制的字符串库函strncpy
,strncat
,strncmp
及其模拟实现。
这些模拟实现都是我凭借❄️颤抖直觉❄️写出来的,当然不完美,同时也可以去参考一下标准库函数,小边看的时候真是大喊妙绝,但对于新手不建议追求奇淫技巧,以逻辑和可读性为主。
4.strncpy
想要很好的模拟实现原逻辑,要先充分了解函数的脾气。
????
strncpy
的模拟实现—my_strncpy
#include<stdio.h>
#include<assert.h>
char* my_strncpy(char* dest, const char* src, size_t count)
{
assert(dest&&src);//断言--保证指针有效性
size_t i = 0;
char* ret = dest;
for (i = 0; i < count; i++)
{
*(dest + i) = *(src + i);//拷贝
//若count>字符串内容
if (*(src + i) == '