求助!!!_strcpy函数的问题!
运行结果可以出来,可是结果后面还有一堆烫烫烫是怎么回事??代码如下:
#include "stdafx.h"
#include<iostream>
using namespace std;
char *_strcpy(char *str1, char *str2)
{
char *p=str1;
while(*str2)
{
*str1=*str2;
str2++;
str1++;
}
return p;
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[100],b[100];
gets(b);
_strcpy(a,b);
puts(a);
return 0;
}
[解决办法]
字符串是以'\0'结尾的。你的代码只拷贝了字符串的内容,没有拷贝'\0'。可以在目的字符串最后面自己加上。
char *_strcpy(char *str1, char *str2){ char *p=str1; while(*str2) { *str1=*str2; str2++; str1++; } *str1 = '\0'; return p;}
[解决办法]
_strcpy函数没拷贝'\0';
改成下面这样:
char *_strcpy(char *str1, char *str2){ char *p=str1; while(*str1++ = *str2++) ; return p; }