模拟实现C库函数:strncpy、strncat和strncmp
来源:互联网 发布:新源代源码论坛 编辑:程序博客网 时间:2024/05/17 08:06
strncat函数是字符串链接函数,将* src字符串中n个字符连接到* dest字符串的有效字符的后面,最后还要加上’\0’
#define _CRT_SECURE_NO_WARNINGS 0#include <stdio.h>#include <windows.h>#include <assert.h>char *my_strncat(char *dest, const char *src,size_t num){assert(dest);assert(src);char *ret = dest;while (*dest != '\0') //先让dest的指针指向最后{*dest++;}while (num--){*dest++ = *src++;}if (*(dest - 1) != '\0') //判断是否已经将‘\0’复制到目标字符串中 {*dest = '\0'; //若没有则给目标字符串最后添加‘\0’ }return ret;}int main(){char src[] = "world !";char dest[20] = "hello ";printf("%s\n", my_strncat(dest, src, 5));system("pause");return 0;}
strncmp函数是字符串比较函数,若* str1的第一个字符的ASCII值大于* str2第一个字符的ASCII值,返回值大于0, 若* str1的第一个
字符的ASCII值小于*str2第一个字符的ASCII值,返回-1, 否则继续比较下一个字符,以此类推,直到遇到第n个字符为止
#define _CRT_SECURE_NO_WARNINGS 0#include <stdio.h>#include <windows.h>#include <assert.h>int my_strncmp(const char *str1, const char *str2, size_t num){assert(str1);assert(str2);while (num--){if (*str1 == *str2){str1++;str2++;}else if ((*str1 - *str2) > 0){return 1;}else{return -1;}}return 0;}int main(){char *str1 = "asdfga";char *str2 = "asdfgh";int ret = my_strncmp(str1, str2, 6);printf("%d\n", ret);system("pause");return 0;}
strncpy是将一个字符串的n个字符复制到另一个字符串中,模拟实现strncpy是要注意到字符串的"\0",因为是复制n个字符所以不知道是否将"\0"复制到目标字符串中,所以要在程序中加上给目标字符串附上"\0"
#define _CRT_SECURE_NO_WARNINGS 0#include <stdio.h>#include <Windows.h>#include <assert.h>char *my_strncpy( char *dest, const char *src, size_t num){assert(dest);assert(src);char *ret = dest;while (num--){*dest++ = *src++;}if (*(dest - 1) != '\0') //判断是否已经将‘\0’复制到目标字符串中 { *dest = '\0'; //若没有则给目标字符串最后添加‘\0’ }return ret;}int main(){char *src = "1234adaq552";char dest[20];printf("%s\n", my_strncpy(dest, src, 5));system("pause");return 0;}
阅读全文
0 0
- 模拟实现C库函数strncpy、strncat、strncmp
- 模拟实现C库函数:strncpy、strncat和strncmp
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- strncmp、strncpy、strncat、strlen库函数的实现
- 用指针实现库函数strncpy strncmp strncat
- 模拟实现C语言strncpy.strncat.strncmp函数
- 【C语言】模拟实现strncpy、strncat、strncmp函数
- 【C语言】模拟实现strncpy strncat strncmp strchr strrchr函数
- C语言~模拟实现strncpy、strncat、strncmp函数
- 【C语言】 实现strncpy,strncat,strncmp
- 模拟实现strncpy ,模拟实现strncat ,模拟实现strncmp
- strncmp和strncat库函数的实现。
- [C语言]模拟实现strcpy/strncpy/strcat/strncat/strcmp/strncmp/strstr
- 模拟实现strcpy,strncpy,strcat,strncat,strcmp,strncmp,memcpy,memmove
- 模拟实现 strncpy strncat strncmp strchr strrchr 函数
- Git与Github的使用
- Leetcode-26-从排序数组中删除重复项
- LSI 9361-8i RAID卡OptRom选项解释_RAIDLevel_CreateRAID
- 解决vc2008 utf8中文字符串报错 C2001常量中有换行符
- ROS学习笔记(七)
- 模拟实现C库函数:strncpy、strncat和strncmp
- 正负脉宽调制信号发生器设计
- ng-repeat指令中使用track by子语句
- 软件调试笔记28
- Andrew Ng机器学习笔记ex4 神经网络学习
- AI笔记-2-tensorflow读取图片的方法
- iOS中遇到libc++abi.dylib`__cxa_throw:
- Gson解析数据为null的错误
- jQuery源码解析-整体架构