C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能

如题所述

#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;

}

扩展资料:

用法://以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)

#include<stdio.h>

int main()

{

int i,j;

scanf("%d%d",&i,&j);

printf("i=%d;j=%d",i,j);

return 0;

}

//以下程序用于输出“百度百科”

#include<stdio.h>

int main()

{

printf("百度百科");

return 0;

}

format

Format参数是包含三种对象类型的一个字符串:

*无格式字符复制到输出流;

*转换规范,每个规范导致在值参数列表中检索1个或更多个项;

*转义序列。

通常意义上format的格式如下:

%[flags][width][.prec][F|N|h|l]type

规定输出数据的格式,具体如下:

注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f。

参考资料:

百度百科——printf

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-07-31
#include <stdio.h>
#include <time.h>

/*把从src地址开始的字符串复制到以dest开始的字符串中*/
char* strcopy (char* dest, char *src) {
char* r = dest;
while((*r++ = *src++)!='\0');
return dest;
}

int main () {
char *str1="abcde";
char *str2;

str2 = strcopy (str2, str1); /*把str1复制到str2*/

puts (str2);

return 0;
}

运行结果

本回答被网友采纳
第2个回答  2017-07-29
#include <stdio.h>
#include <stdlib.h>

void my_str_cpy(char* des,char* src)
{
    while(*src != '\0')
        *des++ = *src++;
}

int main()
{
    char a[20]={"ccc"};
    char b[ ] ={"abcdef,xyz"};
    printf("%s\n",a);
    my_str_cpy(a,b);
    printf("%s\n",a);
    return 0;
}

第3个回答  2013-06-21

#include <iostream>

using namespace std;

void strapy_(char* pBuffer,int count,char* DestSz)

{

 if(*pBuffer != NULL)

 {

  for (int n=0;n<count;n++)

  {

   DestSz[n] = pBuffer[n];

  }

 } 

 

}

const int Num = 20;

void main()

{

 char buffersz[Num] = "Hello,你好!";

 char DesSz[Num] = {0};

 strapy_(buffersz,strlen(buffersz),DesSz);

 cout<<DesSz<<endl;

 system("pause");

}

第4个回答  2013-06-21
#include<stdio.h>
#include<string.h>
char fun(char *a)
{
char b[80];
int i, len;
len = strlen(a);
for (i = 0; i < len; i++)
{
b[i] = a[i];
}
b[i] = '\0';
printf("复制后的字符串为:");
puts(b);
return 0;
}

int main()
{
char a[80];
printf("输入字符串:");
gets(a);
fun(a);
}
祝你愉快!本回答被网友采纳