您的位置:首页 > 其它

模拟实现strcpy和strlen

2016-10-30 17:22 344 查看

模拟实现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、等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息