一. strncpy
1. 定义
我们可以发现 相比于 strcpy strncpy实际上的参数实际上多了一个num
2. 实现
char* my_strncpy(char* des, const char* sour, size_t num) { assert(des && sour); char* ret = des; while (num&&*sour) { *des++ = *sour++; num--; } while (num) { *des++ = '\0'; num--; } return ret; }
代码表示如上
实现效果如下
二. strncmp
1. 定义
和strcmp一样 只是后面传参的时候多了数字 比较这么多个字符的内容
2. 实现
int my_strncmp(const char* str1, const char* str2,size_t num) { assert(str1 && str2); while (num&&(* str1 == *str2)) { if (*str1 == '\0') { return 0; } str1++; str2++; num--; } if (*str1 > *str2) { return 1; } if (*str1 < *str2) { return -1; } else { return 0; } }
实现结果如下
三. strncat
1. 定义
拼接字符 不过这次设定了拼接的数量
2. 实现
代码表示如下
char* my_strcat(char* des, const char* sourse,size_t num) { assert(des && sourse);//duanyan char* ret = des; while (*des) { des++; } while (num&&*sourse) { num--; *des++ = *sourse++; } *des =‘\0’; return ret; }
实际效果如下
以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够
不吝赐教 在评论区或者私信指正 博主一定及时修正
那么大家下期再见咯