建议你这么写:
int i=0;
while(sorce[i]!='\0')
{
 dest[i]=source[i];
 i++;
}

解决方案 »

  1.   

    你用
    mystrcopy(&b,&a)
    试试
      

  2.   

    #include "iostream.h"void mystrcpy(char* dest,char* source)
    {
    while (*source!='\0')
    {
    *dest=*source;
    source++;
    dest++;
    }
    *dest='\0';
    }void main()
    {
    char a[20]="Happy new year!";
    char b[20];
    mystrcpy(b,a);
    cout<<b<<endl;
    }
      

  3.   

    void mystrcpy(char* dest,char* source)
    {
       while (*source!='\0')
       { 
           *dest=*source;
           source++;
           dest++;
       }
       dest++;
       *dest = '\0';
    }
      

  4.   

    你的b 字符串末尾没有加'\0',所以会出错。
    那个函数这样写:
    mystrcpy(char* dest,char* source)
    {
       while (*source!='\0')
       {
           *dest++=*source++;
       }
       *dest='\0';
    }
      

  5.   

    to : bskay(bskay) 
    你的是错误的,最后一个dest++不能要,要就会出错。因为在WHILE里面,DEST已经++了
      

  6.   

    只需在你的while循环后面再加上一句即可:
    while(...)
    {
    }
    *(dest++)='\0'; //新加上。