模拟实现strcpy和strlen

来源:互联网 发布:亡者归来第三季 知乎 编辑:程序博客网 时间:2024/05/17 09:38

模拟实现strcpy

strcpy:其中的str表示字符串,cpy是copy的简写,也就是复制,那么这个函数就是把一个字符串里的内容拷贝到另一个之中。
现在我们就要模拟这个函数,也就是说自己做一个函数来实现strcpy的功能。
看下面的的程序:
char* my_strcpy(char*dest,char*src){char * ret=dest;assert(dest != NULL);assert(src != NULL);while(*dest++ = *src++){;}*dest='\0';return ret;}
这里dest是destination的简写,意思是:目标;src是source的简写,之所以用这两个来作为函数名称,就是想提高程序的可读性。

这里的assert是一个函数,编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。
对了,使用assert的时候不要忘了加头文件  #include<assert.h>
另外就是注意传参数的时候不要忘记‘*’。

模拟实现strlen

strlen:就是字符串的长度的函数,其中不包括'\0',
那么怎么模拟实现呢?现在来看程序:
#include<stdio.h>#include<assert.h>#include<stdlib.h>int my_strlen(const char * str){int count=0;assert(str!=NULL);    while(*str++){count++;}return count;}int main(){char str[]="victory";printf("%d\n",my_strlen(str));system("pause");return 0;}

其实也就是多加了一个计数的语句而已。不过值得一提的是const:
1、定义const常量,具有不可变性。
2、可以保护被修饰的变量,防止被意外修改。
3、等等



0 0
原创粉丝点击