如何不用strcpy函数实现字符串拷贝

wyvernwhite 2003-12-21 01:59:27
如题
...全文
613 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyvernwhite 2004-01-13
  • 打赏
  • 举报
回复
多谢各位了,可惜分太少......
liushuaiboy 2003-12-27
  • 打赏
  • 举报
回复
建议看一下林锐的《高质量c++编程》吧,里面有原题
sharkhuang 2003-12-27
  • 打赏
  • 举报
回复
strcpy()必须是字符串也就是要有"\n".

memcpy()没有这个限制,所以多一个参数 长度!
goodluckyxl 2003-12-27
  • 打赏
  • 举报
回复
strcpy(char *strDest, const char *strSrc);
返回strDest的首地址
你可以直接将strcpy()给变量赋值,或cout

memcpy( void *dest目标地址, const void *src源地址, size_t count拷贝字符个数 );
在对内存操作用这比较好,不过它返回值不是dest的地址不能直接用
lpanguan 2003-12-27
  • 打赏
  • 举报
回复
#include "stdio.h"
用指针变量处理
main()
{char str1[20],str2[20],*p1,*p2;
printf("\nenter a string:");
gets(str1);
p1=str1;p2=str2;
for(;*p1!='\0';p1++,p2++);
*p2=*p1;
*p2='\0';
puts(str2);
}
lpanguan 2003-12-27
  • 打赏
  • 举报
回复
输入字符数组str1,并将其拷贝到str2中。
#include "stdio.h"
main()
{char str1[20],str2[20];
int i;
printf("\nenter a string:");
gets(str1);
for (i=0;str1[i]!='\0';i++)
str2[i]=str1[i];
str2[i]='\0';
puts(str2);
}
puts(str2);
yegreat 2003-12-27
  • 打赏
  • 举报
回复
重写的strcpy函数,你该知道怎么办了吧

strcpy char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
? return address ;
}
5852 2003-12-27
  • 打赏
  • 举报
回复
没看过《高质量C/C++编程》 你就等于没学过C/C++

太夸张了吧?也许,你看了就知道!
analyser2003 2003-12-27
  • 打赏
  • 举报
回复
可以用循环来一个一个字符的复制,可是有必要吗?
cai114 2003-12-27
  • 打赏
  • 举报
回复
侫今年的中程题中有一个原题
你可以用memcpy(),
它不只可以COPY字 字符串 只要是内存里有的都可以,不过要定义它的位址和长度

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧