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

 我来答
问明6E
高粉答主

2019-05-20 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.7万
展开全部

#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

碧海风云

推荐于2017-07-31 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
#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;
}

运行结果

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lxmatgz
2017-07-29 · TA获得超过899个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:79.6万
展开全部
#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;
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
智慧人生gN
2013-06-21
知道答主
回答量:33
采纳率:0%
帮助的人:10.5万
展开全部

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

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逐梦兮乐
2013-06-21 · TA获得超过6431个赞
知道大有可为答主
回答量:5151
采纳率:72%
帮助的人:1847万
展开全部
#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);
}
祝你愉快!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式