C语言~模拟实现strncpy、strncat、strncmp函数

来源:互联网 发布:单片机如何控制电磁铁 编辑:程序博客网 时间:2024/05/18 00:35

  在C语言string这个库中的strcpy,strcat,strcmp这三个函数是通过传递数组的内容来限制它们的,用传参的方式现实字符串的改变长度,模拟实现如下:

1、strncpy:

char* my_strncpy(char *dest, const char *src, int sz){assert(dest && src);int i = 0;char *ret = dest;while (i < sz){*dest++ = *src++;i++;}return ret;}int main(){char arr[40] = { 0 };my_strncpy(arr, "hellolokouihu", 4);printf("%s\n", arr);return 0;}
2、strncat:

char* my_strncat(char* dest, const char* src, int sz){assert(dest && src);char* ret = dest;while (*ret){ret++;}while (sz - -){*ret++ = *src++;}*ret = 0;return dest;}int main(){char arr[20] = "hello hjh";    my_strncat(arr, "ahcde", 4);int i = 0;printf("%s\n", arr);return 0;}
3、strncmp

int my_strncmp(const char* dest, const char* src, int sz){assert(dest);assert(src);while (sz - -){if (*dest == *src){dest++;src++;}else{if ((*dest - *src) < 0)return -1;elsereturn 1;}}return 0;}int main(){char arr1[] = "jisuanji";char arr2[] = "jisuanjihehe";int num = 0;num = my_strncmp(arr1, arr2, 10);printf("%d\n", num);return 0;}




阅读全文
0 0
原创粉丝点击