不使用C语言标准函数库,实现c语言字符串的复制复制,即实现Strcpy函数功能。为什么我编的代码,BULID没问题RUN出错

没有更多推荐了,
不良信息举报
举报内容:
C语言:重写strcpy函数,拷贝字符串的内容
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!编写strcpy 函数_百度知道
编写strcpy 函数
已知strcpy 函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。
(1)不调用C++/C 的字符串库函数,请编写函数 strcpy
(2)strcpy 能把strSrc 的内容复制到strDest,为什么还要char * 类型的...
我有更好的答案
  strcpy函数  C语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间。  典型实现:  /**********************  *C语言标准库函数strcpy的一种典型的工业级的最简实现  *返回值:目标串的地址。  *对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。  *参数:des为目标字符串,source为原字符串  */  char* strcpy(char* des,const char* source)  {  char* r=  while((*(des++)=*(source++))!='\0');    }  /*while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值NULL后,循环停止*/    应用实例:  已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);  ⒈strcpy的实现代码  char * strcpy(char * strDest,const char * strSrc)  {  if ((NULL==strDest) || (NULL==strSrc)) //[1]  throw &Invalid argument(s)&; //[2]  char * strDestCopy = strD //[3]  while ((*strDest++=*strSrc++)!='\0'); //[4]  return strDestC  }  
采纳率:97%
来自团队:
#include &stdio.h&#include &string.h&char* StrCpy(char *strDest, const char *strSrc){if(!strDest||!strSrc)return NULL; if (!strlen(strSrc)) {*strDest='\0';
return strD } char* tmp=strD do
*tmp++=*strS } while (*strSrc++); return strD}int main(){ char str1[20],str2[20]; scanf(&%s&,str2); printf(&%s\n&,StrCpy(str1,str2));//这一行就说明了返回char*的作用 return 0;}
本回答被提问者采纳
为您推荐:
其他类似问题
您可能关注的内容
strcpy的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能_百度知道
C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能
我有更好的答案
#include&&stdio.h&#include&&time.h&/*把从src地址开始的字符串复制到以dest开始的字符串中*/char*&strcopy&(char*&dest,&char&*src)&{ char*&r&=& while((*r++&=&*src++)!='\0'); return&}int&main&()&{ char&*str1=&abcde&; char&*str2; str2&=&strcopy&(str2,&str1);&/*把str1复制到str2*/
puts&(str2);
return&0;}运行结果
采纳率:72%
#include&stdio.h&#include&string.h&char fun(char *a){ char b[80]; int i, len = strlen(a); for (i = 0; i & i++) {
b[i] = a[i]; } b[i] = '\0'; printf(&复制后的字符串为:&); puts(b); return 0;}int main(){ char a[80]; printf(&输入字符串:&); gets(a); fun(a);}祝你愉快!
本回答被网友采纳
#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;}
#include&&iostream&using&namespace&void&strapy_(char*&pBuffer,int&count,char*&DestSz){&if(*pBuffer&!=&NULL)&{&&for&(int&n=0;n&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&&&system(&pause&);}
char *strcpy(char *dest,const char *src){
if ( NULL == src || NULL == dest)
return NULL;
char *temp =
while((*dest++ = *src++) != '/0');
char&*strcp(char&*s1,char&*s2){char&*p=s1;while(*s1++=*s2++);return&p;}
#include &stdio.h&#include &malloc.h&int main(void){char a[]=&asdfghjkl&;char * pAint len = sizeof(a);&pArr = (char *)malloc(len);for(i=0;i&i++){pArr[i]=a[i];&}for(i=0;i&i++){ &printf(&%c &,pArr[i]);}return 0;}
其他4条回答
为您推荐:
其他类似问题
strcpy的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。& & 已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。
char *strcpy(char *strDest, const char *strSrc)
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
return strD
char *tempptr = strD
while( (*strDest++ = *strSrc++) != &\0&);
阅读(...) 评论()}

我要回帖

更多关于 c语言 复制指定字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信