大家帮我看看这段代码.
#include "iostream.h"
void mystrcpy(char* dest,char* source)
{
while (*source!='\0')
{
*dest=*source;
source++;
dest++;
}
}
void main()
{
char a[20]="Happy new year!";
char b[20];
mystrcpy(b,a);
cout<<b<<endl;
}
请问结果为什么不是"Happy new year",而是"Happy new year"加一个乱码再加"appy new year"
问题点数:20、回复次数:15Top
1 楼vc666(vc666)回复于 2002-01-07 14:29:01 得分 0
HelpTop
2 楼fhqiplj(霏霏鱼)回复于 2002-01-07 14:41:29 得分 0
学习!Top
3 楼vc666(vc666)回复于 2002-01-07 14:55:22 得分 0
没有人会吗?Top
4 楼tony1978(突击召唤师)回复于 2002-01-07 14:56:02 得分 0
建议你这么写:
int i=0;
while(sorce[i]!='\0')
{
dest[i]=source[i];
i++;
}
Top
5 楼tony1978(突击召唤师)回复于 2002-01-07 14:57:00 得分 0
我知道了,你的b没有'\0'了,哈哈Top
6 楼sayu_yangyou(√)回复于 2002-01-07 14:57:23 得分 0
你用
mystrcopy(&b,&a)
试试Top
7 楼vc666(vc666)回复于 2002-01-07 15:05:28 得分 0
还是不对Top
8 楼charles_y(每天上网一小时)回复于 2002-01-07 15:10:09 得分 0
#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;
}
Top
9 楼bskay() bskay() bskay()回复于 2002-01-07 15:10:52 得分 5
void mystrcpy(char* dest,char* source)
{
while (*source!='\0')
{
*dest=*source;
source++;
dest++;
}
dest++;
*dest = '\0';
}
Top
10 楼xuyongg(懶漢)回复于 2002-01-07 15:12:08 得分 5
你的b 字符串末尾没有加'\0',所以会出错。
那个函数这样写:
mystrcpy(char* dest,char* source)
{
while (*source!='\0')
{
*dest++=*source++;
}
*dest='\0';
}
Top
11 楼xuyongg(懶漢)回复于 2002-01-07 15:14:49 得分 5
to : bskay(bskay)
你的是错误的,最后一个dest++不能要,要就会出错。因为在WHILE里面,DEST已经++了Top
12 楼nnwlqe(网络企鹅)回复于 2002-01-07 15:23:00 得分 5
只需在你的while循环后面再加上一句即可:
while(...)
{
}
*(dest++)='\0'; //新加上。Top
13 楼vc666(vc666)回复于 2002-01-07 15:26:23 得分 0
给分了Top
14 楼charles_y(每天上网一小时)回复于 2002-01-07 16:18:05 得分 0
真气人,俺是第一个帮你解决的,居然得了分!!!!!!!!!Top
15 楼charles_y(每天上网一小时)回复于 2002-01-07 16:19:03 得分 0
呵呵,我是说得了0分.Top




