strcpy,strncpy函数实现——string.h库函数
2015-11-23 22:10
351 查看
strcpy和strncpy函数是用来拷贝字符串时使用的,他们的不同之处在于,strncpy可以指定拷贝的字符个数,而strcpy则是将源字串全部拷到目标字串。
strcpy函数实现:
1.原型:
#include <string.h> char *strcpy(char *dest, const char *src);
2.参数:
dest:目标字串地址src:源字串地址
3.实现:
实现一:char *my_strcpy1(char *dest, const char *src) { int i = 0; //参数判断 if(NULL == src || NULL == dest || src == dest){ return NULL; } //循环复制 while(0 != src[i]){ dest[i] = src[i]; i++; } //目标字串末尾加'\0' dest[i] = '\0'; return dest; }
实现一进化:
char *my_strcpy2(char *dest, const char *src) { //参数判断 if(NULL == src || NULL == dest || src == dest){ return NULL; } //先复制,再判断 do{ *dest++ = *src++; }while(*src); return dest; }
实现二进化:
char *my_strcpy3(char *dest, const char *src) { //参数判断 if(NULL != src && NULL != dest && src != dest){ //复制 while('\0' != (*dest++ = *src++)); } return dest; }
strncpy函数实现:
1.原型:
#include <string.h> char *strncpy(char *dest, const char *src, size_t n);
2.参数:
dest:目标字串地址src:源字串地址
n:拷贝字符个数
3.实现:
实现(类比strcpy,直接进化至最高境界):char *my_strncpy(char *dest, const char *src, size_t n) { //参数判断 if(NULL != src && NULL != dest && src != dest && 0 < n){ //复制 while(n-- && '\0' != (*dest++ = *src++)){ //do nothing } } if(-1 == n){ *dest = '\0'; } return dest; }
===========本文结束===============
小菜总结,如有不当,欢迎批评!
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- BAT批处理中的字符串处理详解(字符串截取)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记