当前位置: 代码迷 >> C语言 >> strcpy函数实现,错哪里?
  详细解决方案

strcpy函数实现,错哪里?

热度:177   发布时间:2005-12-26 20:35:00.0
strcpy函数实现,错哪里?
#include <stdio.h>
#define null 0
void strcpy(char* s,char* p);
main()
{
const char* b="carl_berg";char* a;
a=(char*)malloc(sizeof(b));
clrscr();
strcpy(a,b);
 printf("%s",a);
}
void strcpy(char* a,char* b)
{
if(b==null)
printf("b is null!");
else
{
while(*a++=*b++);
}
}

[此贴子已经被作者于2005-12-26 20:43:33编辑过]

搜索更多相关的解决方案: strcpy  函数  

----------------解决方案--------------------------------------------------------

没错了,很奇怪


----------------解决方案--------------------------------------------------------
你把"string.h"头文件加进去呢?
----------------解决方案--------------------------------------------------------
应该是你定义的函数与库函数同名吧!
----------------解决方案--------------------------------------------------------
void strcpy(char* a,char* b)
{
if(b==null)
printf("b is null!");
else
{
while(*a++=*b++);
}
}
黄色部分请注意。
你这样做的结果是存于b[0]的一个字符在赋给*a后自增1,然后存于*a的这个字符又自增1。
应该改成*(a++)=*(b++)

[此贴子已经被作者于2005-12-26 23:23:16编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案