文章目录
前言
在写c语言基础系列文章时,介绍了字符串函数strlen(),strcpy(),strcmp(),strcat()的使用和模拟实现。
本篇文章介绍受长度限制的字符串函数的使用和模拟实现。
一、库函数strncpy()
1.1 strncpy()介绍
strncpy()实现字符串拷贝,但是拷贝的字符个数有长度限制。
下面是cplusplus网站关于这个库函数的介绍以及使用。
说明:
- 从source指向的字符串拷贝num个字符到destination指向的字符数组中,如果source指向的字符串的字符个数比num小,会用\0填充到destinaiton指向的字符数组中,直到拷贝的字符个数达到num个。
- 当source指向的字符串的字符个数大于num,并且destination指向的字符串没有以’\0’作为结束符,在这种情况下,destinaiton指向的字符串是一个没有终止符的字符串。
使用
- source指向的字符串字符个数大于num
- source指向的字符串字符个数小于num
1.2 模拟实现strncpy()
代码实现
//模拟实现strncpy
char* my_strncpy(char* destination, const char* source, unsigned int num)
{
assert(destination && source); //空指针判断
char* dest = destination