1.strncpy的函数原型
char* strncpy(char* destination, const char* source, size_t num);
- 模拟实现strncpy
-
#include <stdio.h>
char* my_strncpy(char* dest, char* src, int sz)
{
char* ret = dest;
while (sz--)
{
*dest = *src;
dest++;
src++;
}
return ret;
}
2.函数功能
- 该函数的功能
3.函数参数
- 第一个参数是一个字符指针,指向目的字符串,第二个参数是一个字符指针,指向源字符串,第三个参数是一个整型,表示的是要复制的字符的个数,单位是字节。
- 是将源字符串里的前num字节的元素复制到目的字符串里面。
- 这里要注意的一点就是,strncpy并不会将’\0’复制过去。
二.模拟实现strncat函数
1.函数原型
char * strncat ( char * destination, const char * source, size_t num );
1
2.函数功能
该函数的功能是在目的字符串后面追加 源字符串的前num个字符。
2.函数参数
第一个参数是一个字符指针,指向目的字符串,第二个参数是一个字符指针,指向源头字符串,第三个参数是一个整型,表示要追加的字符的数量,单位是字节。
3.模拟实现strncat
#include <stdio.h>
char* my_strncat(char* dest, char* src, int sz)
{
char* ret = dest;
while (*dest)
{
dest++;
}
while (sz--)
{
*dest = *src;
dest++;
src++;
}
return dest;
}
三.模拟实现strncmp
1.函数原型
int strncmp ( const char * str1, const char * str2, size_t num );
1
2.函数功能
该函数的功能是比较str1和str2指向的两个字符串的前num个字节的字符。如果str1>str2,返回一个大于0的数字,如果str1<str2,返回一个小于0的数字,如果str1==str2,返回0。
3.函数参数
第一个参数是一个函数指针,指向一个字符串,第二个函数也是一个字符指针,也指向一个字符串,第三个参数是一个整型,表示要比较的字符的个数,单位是字节。
4.模拟实现strncmp
int my_strncmp(char* arr1, char* arr2, int n)
{
while (*arr1 && *arr2)
{
if (*arr1 > *arr2)
{
return 1;
}
else if (*arr1 < *arr2)
{
return -1;
}
else
{
arr1++;
arr2++;
}
}
return 0;
}