不调用库函数,模拟实现strcpy函数
来源:互联网 发布:企业网络信息平台构建 编辑:程序博客网 时间:2024/06/16 14:39
//模拟实现strcpy函数#include<stdio.h>#include<assert.h>void My_Strcpy_1(char * des, char * src){while (*src != '\0')//将src里面'\0'之前的字符拷贝过去{*des = *src;des++;src++;}*des = *src;//拷贝'\0'到des}void My_Strcpy_2(char * des, char * src){while (*des++ = *src++){;}//++的优先级高于*(解引用)//将src里面的第一个'\0'以及之前的字符拷贝过去//并且*des=='\0',条件为假,拷贝结束}void My_Strcpy_3(char * des, char * src){if (des == NULL || src == NULL)//用指针时要先判空{return;}while (*des++ = *src++){;}}void My_Strcpy_4(char * des, char * src){assert(des != NULL);assert(src != NULL);//void assert (int expression);//断言 里面表达式为假时,报错,即des或着src有一个为空时,报错//assert 在Debug版本下起作用,在给用户的Release版本下自动优化消失while (*des++ = *src++){;}}char * My_Strcpy_5(char * des, char * src)//完善返回类型{assert(des != NULL);assert(src != NULL);char *p = des;while (*p++ = *src++){;}return des;}char * My_Strcpy(char * des, const char * src)//保护源字符串{assert(des != NULL);assert(src != NULL);char *p = des;while (*p++ = *src++){;}return des;}//标准形式://char * strcpy ( char * destination, const char * source );//const修饰指针类型时,若放在*的 左边,受保护是 指针所指的内容//指针本身可以改变//但指向的内容不能用指针改变,但可以用其他方式改变//char const *p =NULL; *p='a';//程序报错//const修饰指针类型时,若放在*的 右边,受保护的是 指针//指针指向的内容可以改变//指针本身不可以修改//char *const p=NULL; p=ch2;//程序报错int main(){char ch1[20] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', '\0' };char ch2[20] = { 0 };/*My_Strcpy_1(ch2, ch1);*//*My_Strcpy_2(ch2, ch1);*//*My_Strcpy_3(ch2, ch1);*//*My_Strcpy_4(ch2, ch1);*//*My_Strcpy_5(ch2, ch1);*/My_Strcpy(ch2, ch1);//拷贝时将第一个'\0'拷贝过去后就结束printf("%s\n", ch2);return 0;}
阅读全文
0 0
- 不调用库函数,模拟实现strcpy函数
- 不调用库函数,实现strcpy函数
- 不调用库函数,实现strcpy() 函数
- 不调用库函数,实现strcpy函数
- 不调用库函数,实现strcpy函数
- 不调用库函数,实现strcpy函数
- 不调用库函数,实现strcpy() 函数
- 模拟实现strcpy函数,不使用strcpy库函数
- 不调用库函数,实现strcpy
- 不调用库函数,实现strcpy函数;编程实现memcpy函数
- 不调用库函数,实现strcpy函数,strcat函数。
- 09-11-14:不调用库函数,实现strcpy函数
- 不调用C/C++库函数实现strcpy函数
- 125.已知strcpy函数的原型是,不调用库函数,实现strcpy函数
- 【c语言】模拟实现库函数strcpy函数
- 不使用库函数实现strcpy函数
- 模拟实现库函数Strcpy
- 模拟实现库函数strcpy
- Acm2-快速幂、位运算、递归
- iOS 数组与指针经典笔试题
- 栈链的实现
- UDP之socket编程实例
- 什么是前端工程师?前端工程师需要掌握什么技能?
- 不调用库函数,模拟实现strcpy函数
- 数据库访问JavaBean
- 浅析数据库(DB)、操作数据存储(ODS)和数据仓库(DW)的区别与联系
- 4.3
- jQuery ajax
- 5.5判断是闰年还是平年
- 小程序学习之tab选项卡
- 05-(异常抛出) 06-面向对象(异常-异常捕捉trycatch)1 2 3 4 5 08-面向对象(异常-异常处理原则)
- esearch 不能用 root 用户启动问题