模拟实现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、等等
相关文章推荐
- 模拟实现strstr,strcpy,strlen,strcat,strcmp,memcpy,memmove
- C语言模拟实现strcpy、strlen、strcmp、strcat
- 模拟实现strlen、strcpy、strcat、strcmp函数
- 模拟实现strlen、strcpy、strcmp、strncmp等字符串函数
- 字符串训练(一)模拟实现strlen,strcmp,strcpy,strcat函数
- 和字符串有关的函数的模拟实现 strlen strcpy strcat strstr strcmp
- strlen,strcpy,strcat,strcmp,strstr,memcpy,的模拟实现方式
- C语言字符串函数的模拟实现(strlen、strcpy、strcat、strstr 、strcmp)
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- 模拟实现strlen,strcpy,strcmp,strcat,strstr库函数
- C语言 模拟实现strcpy 与 strlen
- strlen,strcpy,strcat,strcmp,strchr 的模拟实现
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- 字符串函数之strlen() , strcpy() 的模拟实现
- strcpy 和strlen函数的模拟实现
- 模拟实现strlen,strcpy,strcat,strstr,strcmp,memcpy,memmove
- 模拟实现strlen,strcpy,strcat,strstr,strcmp函数
- 模拟实现strlen,strcpy,strcat
- 模拟实现strlen、strcpy、strncpy、strcat、strcmp