C语言:利用指针和函数调用编写字符串拷贝函数strcpy

原创 2016年05月30日 17:13:35
#include<stdio.h>
#include<assert.h>/*断言的头文件*/


char *my_strcpy(char *dest,const char *src)
/*传参,把src依次传给dest,指针数组,每一个都是地址*/
{
     char* ret = p;/*接收的为地址*/
     assert(src!=NULL);
     /*,使用指针一定要先用查找函数判断是否为空,防止不小心将空地址传递*/
     while( * dest++ = * src++)
     {
          ; 
     } 
     return p;/*返回的ret为字符串则用char,且为地址*/
}


int main()
{
     char arr1[]="Hello world!"; 
     char arr2[20];
 
     char *ret=my_strcpy(arr2,arr1);

     printf("%s",ret);/*打印出的为字符串*/
     return 0;
}

注意两点:

(1)要将dest首地址保存起来,最后再返回其地址!!!

     char* ret = p;/*接收的为地址*/
     assert(src!=NULL);
     /*,使用指针一定要先用查找函数判断是否为空,防止不小心将空地址传递*/
     while( * dest++ = * src++)
     {
          ; 
     } 
     return p;/*返回的ret为字符串则用char,且为地址*/

否则,若不保存地址,则dest一直在变化,最后变成了'\0',则不输出


(2)src原串不发生变化,则可用const修饰。防止其发生改变!

习题8-5 使用函数实现字符串部分复制

习题8-5 使用函数实现字符串部分复制   (20分) 本题要求编写函数,将输入字符串tt中从第mm个字符开始的全部字符复制到字符串ss中。 函数接口定义: void strmcpy...

完成字符串拷贝(sprintf、strcpy 及 memcpy 函数)函数之间的区别

sprintf 可以进行额外的格式化 strcpy 会复制直到出现 '' 为止,可能溢出 strncpy 会复制一个以 '' 结束的字符串,但是如果字符串长度超过指定数量则被截断,但结果可能不包含...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

编写字符串复制函数strcpy及memcpy函数

Strcpy与memcpy两函数的经典实现,哈哈,不过,不是偶写的!^_^………… char *strcpy(char *des, const char *src){       assert((de...

请写一个函数,实现类似的strcpy的字符串复制功能

这个题目看起来很简单,但要完整的实现其功能还是得下的功夫 先来看下一个经典错误的程序 char * mystrcpy(char *dest,char *src) { char *ret...
  • czxyhll
  • czxyhll
  • 2012年09月06日 17:17
  • 4601

C语言 编写程序实现字符串拷贝,不允许调用strcpy函数。

编写程序实现字符串拷贝,不允许调用strcpy函数。 #include #include char * my_strcpy(char *dst,char const *src) { char...

C语言-字符串的拷贝指针

#include #include "string.h" #define N 1000 //方法一: char *MyStrCpy(char *dest,const char *scr); ch...

指针—字符串复制的方法

这里用了三种方法进行复制 1.地址法://指针练习题: //将字符串a复制到字符串b. 这里使用的是地址法 #include int main() { char a[]=...

C语言函数调用时参数压栈的顺序以及函数指针的作用

1、函数参数压栈的顺序 很多人都知道压栈的顺序时从右向左进行压栈,具体的可观测的结果如下程序运行。我们都知道Pascal的参数入栈顺序时自左向右的,但是为什么C语言会选择自右向左呢?这也是C语言比pa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:利用指针和函数调用编写字符串拷贝函数strcpy
举报原因:
原因补充:

(最多只允许输入30个字)