strcpy与strncpy函数的区别及其C语言实现过程
2018-03-05 14:31
579 查看
strcpy :
从源串的开始到结尾('\0')完全拷贝到目标串地址,当src串长度大于dest串长度时,程序仍会将整个src串复制到dest区域,可是dest数组已发生溢出.(使用时需注意)
strncpy :
src串的开始拷贝n个字符到dest串地址,n大于src串长度时,遇到'\0'结束; n小于src串长度时,到第n个字符结束,但不会在dest串尾补'\0'.
strcpy函数的实现
#include<assert.h> char *my_strcpy(char *dest, const char *src) { char *ret = dest; assert(dest != NULL); assert(src != NULL); while ((*dest++ = *src++) != '\0') { ; } return ret ; } int main() { char dest[] = "hehehehehe";//注意 char src[] = "hello"; my_strcpy(dest, src); printf("%s\n", dest); return 0; }
strncpy函数的实现
#include<stdio.h> #include<assert.h> char *my_strncpy(char *dest, const char *src, int count) { assert(dest != NULL); assert(src != NULL); char *ret = dest; while (count) { if((*dest++ = *src++) != '\0') { count--; } } return ret; } int main() { char dest[20] = "0";//注意 char src[] = "helloworld"; int n = 5; my_strncpy(dest, src, n); printf("%s\n", dest); return 0; }
相关文章推荐
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- memcpy的用法与strcpy的区别及纯c语言实现
- strcpy和memcpy函数的实现及其区别
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- 【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
- C语言中strcpy与memcpy函数实现与区别
- 【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
- 栈及其应用 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 静态串及其基本操作(C语言实现)
- C语言,模拟实现strcpy、strlen函数
- [C语言]模拟实现strcpy/strncpy/strcat/strncat/strcmp/strncmp/strstr
- DHCP之简要分析(包括C语言实现过程,IP冲突的检测与解决办法)
- strcpy,strncpy函数实现——string.h库函数
- C语言中memset ,memcpy 和strcpy 的区别
- 手写JAVA NIO实现Socket通信及其过程中注意的问题
- 经常使用哈希函数的比較及其C语言实现
- 详解约瑟夫环问题及其相关的C语言算法实现
- [置顶] 【C语言】 实现strcpy
- C语言封装成object-c的过程,实现原理
- c语言实现strcpy,strcat,strcmp函数