strcpy函数实现
来源:互联网 发布:手机棋牌游戏平台知乎 编辑:程序博客网 时间:2024/06/07 09:48
要求:不使用c++/c的字符串库函数,实现strcpy函数
最易想到的方法:
void my_strcpy(char *dest, char *src){ while (*src != '\0') { *dest++ = *src++; } *dest = *src; //将'\0'拷贝过去}
由此可见此代码还可进行简单优化:
void my_strcpy(char *dest, char *src){ while (*dest++ = *src++) { ; }}
若传入一个空指针,那么编译程序崩溃,*dest++解引用失败,优化方案如下:
void my_strcpy(char *dest, char *src){ if (dest == NULL || src == NULL) { return; } while (*dest++ = *src++) { ; }}
此时发现每次都要判断dest,src是否为空,降低了效率;并且strcpy函数的返回类型是char*,对此还可再次优化:
char* my_strcpy(char *dest,const char *src){ char *ret = dest; assert(dest != 0); assert(src != 0); while (*dest++ = *src++) { ; } return ret;}
至此做到这一步代码基本没问题了
最后加上一个测试代码,完成strcpy函数的实现
int main(){ char buf[10] = { 0 }; char *p = buf; //char *p = NULL; my_strcpy(p, "hehe"); printf("%s\n", buf); system("pause"); return 0;}
注意:在使用assert函数时应引用相应头文件#include<stdio.h>
。
阅读全文
0 0
- strcpy函数的实现
- strcpy函数实现
- 实现strcpy函数(转)
- strcpy函数的实现
- 实现strcpy()函数
- strcpy函数的实现
- strcpy函数实现
- strcpy函数的实现
- strcpy函数实现
- c实现strcpy函数
- strcpy() 函数 标准实现
- 实现strcpy函数
- C++ - 实现strcpy函数
- strcpy函数的实现
- strcpy函数实现
- 编程实现strcpy函数
- 编程实现strcpy函数
- strcpy函数的实现
- intellij 快捷键 .转载
- 中断与异常
- px4原生源码学习-(1)
- Java数据结构与算法(4) -冒泡排序
- 第 4 章 数据类型
- strcpy函数实现
- 线程的五种状态及改变状态的三种方法
- SEH原理剖析
- vijos 1752
- java操作redis(一):建立连接以及常用存取值的操作
- Error:Failed to resolve: com.android.support:support-annotations:27.0.0
- 先码后看 Tomcat是怎么启动的?——概论 侵立删
- 天才的诠释
- 深入浅出 Python Closures