模拟实现strcpy函数

a、代码简练的

 1 #include<stdio.h>
 2 #include<assert.h>
 3
 4 //模拟实现
 5 void my_strcpy(char* dest, const char* src)
 6 {
 7     assert(dest != NULL);
 8     assert(src != NULL);
 9     while (*dest++ = *src++)
10     {
11         ;
12     }
13 }
14
15
16 //打印数组
17 void Print(char* arr)
18 {
19     while (*arr != ‘\0‘)
20     {
21         printf("%c",*arr);
22         arr++;
23     }
24 }
25 int main()
26 {
27     char arr[] = "abcdefg";
28     my_strcpy(arr,"hello");
29     Print(arr);
30     system("pause");
31     return 0;
32 }

b、代码相对容易理解

 1 #include<stdio.h>
 2 #include<assert.h>
 3
 4 void my_strcpy(char* dest, const char* src)
 5 {
 6     assert(dest != NULL);
 7     assert(src != NULL);
 8     while (*src != ‘\0‘)
 9     {
10         *dest = *src;
11         dest++;
12         src++;
13     }
14     *dest = *src;
15 }
16
17 void Print(char* arr)
18 {
19     while (*arr != ‘\0‘)
20     {
21         printf("%c",*arr);
22         arr++;
23     }
24 }
25 int main()
26 {
27     char arr[] = "abcdefg";
28     my_strcpy(arr,"hello");
29     Print(arr);
30     system("pause");
31     return 0;
32 }

原文地址:https://www.cnblogs.com/yishengPan/p/9162914.html

时间: 2024-08-04 12:50:45

模拟实现strcpy函数的相关文章

C语言中模拟实现strcpy,strstr,strcat函数

在C中,要模拟实现这几个库函数,是对指针的传参与函数的调用的考察,代码如下,仅供参考 strcpy函数: #include <assert.h> char* my_strcpy(char* dest, const char* src) { assert(dest);//断言指针的有效性 assert(src); char*pa = dest; while (*dest++ = *src++) ; return pa; } strstr函数: int my_strstr(const char*s

C语言::模拟实现strlen函数

编写一个C语言程序模拟实现strlen函数. 算法 strlen函数功能是计算字符串中字符的个数.(除\0外) 而字符串本身就是一个字符数组,只不过末尾以\0结束. 因此,我们只需遍历除\0之外的所有字符即可. 有三种方法可以解决这个问题. 算法总结 方法一:设置一个整型计数器,遍历字符串. 方法二:通过不断函数自身的递归. 方法三:与方法一类似,设置一个char*变量标记字符串尾部,通过指针相减得到字符长度. 核心代码 //方法一:通过设置整型计数器,模拟实现strlen函数. int my_

C语言::模拟实现strcmp函数

题目要求 编写一个C语言程序模拟实现strcmp函数. (我们依然先模拟实现strcmp函数,然后再对照string.h库中strcmp函数的实现,对比与大师之间的差距.) 算法分析 通过上一篇文章:C语言::strcmp函数功能.原型.用法及实例我们获得了strcmp函数的如下信息: strcmp原型:int strcmp( const char *s1, const char *s2 ); strcmp功能:将两个字符串自左向右逐个字符进行相比(根据ASCII值大小),直到出现不同的字符或遇

C语言::模拟实现strcat函数

题目要求 编写一个C语言程序模拟实现strcat函数. (我们不妨先模拟实现一下strcat函数,然后再对照一下string.h库函数中strcat函数代码的实现,与大师肩并肩.) 算法分析 strcat函数功能:将两个字符串连接起来,最终返回连接后字符串的首地址. strcat函数原型:char *strcat(char *dest,const char *src); 我们清楚地了解了strcat函数功能和原型之后,就很容易分析出算法... 算法总结 第一步:将dest指向的内容循环遍历至'\

【C语言】模拟实现atoi函数

atoi(表示 ascii to integer)是把字符串转换成整型数的一个函数. atoi()函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回0 我们在模拟实现atoi函数时,要注意以下几点: 1.字符串之前的空白问题 2.正负号 3.字符串为空时 4.

strcpy函数的实现

大家一般觉得名不见经传strcpy函数实现不是非常难,流行的strcpy函数写法是: char *my_strcpy(char *dst,const char *src) { assert(dst != NULL); assert(src != NULL); char *ret = dst; while((* dst++ = * src++) != '\0') ; return ret; } 假设注意到: 1,检查指针有效性: 2,返回目的指针des: 3,源字符串的末尾 '\0' 须要拷贝.

编写一个程序实现strcpy函数的功能

1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 5 6 char *mycpy(char *s1, char *s2) 7 { 8 //数组型 9 /* int i; 10 while(s2[i] != '\0') { 11 s1[i] = s2[i]; 12 i++; 13 } 14 s1[i] = '\0'; 15 return s1; */ 16 //指针型 17 char *p = s1; 18 whil

strcpy函数的最优实现方法

微软自带的strcpy函数: (不完善,4分) charcharconstchar char while'\0' return } 最完善的strcpy函数: (推荐使用,10分) charcharconstchar//将源字符串加const,表明其为输入参数不能修改 if//考虑到源字符串和目的字符串有重叠,也即地址相同 return //对源地址和目的地址加非空地址断言 char//备份目的字符串的首地址,由于后面的操作会修改dest值 while'\0' return//为了实现链式操作,

strcmp函数和strcpy函数

(一)strcmp函数 strcmp函数是比較两个字符串的大小,返回比較的结果.一般形式是: i=strcmp(字符串,字符串); 当中,字符串1.字符串2均可为字符串常量或变量:i   是用于存放比較结果的整型变量.比較结果是这样规定的: ①字符串1小于字符串2,strcmp函数返回一个负值; ②字符串1等于字符串2,strcmp函数返回零; ③字符串1大于字符串2,strcmp函数返回一个正值;那么,字符中的大小是怎样比較的呢?来看一个样例. 实际上,字符串的比較是比較字符串中各对字符的AS