读书人

!strcpy函数的有关问题

发布时间: 2012-08-30 09:55:54 作者: rapoo

求助!!!_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'。可以在目的字符串最后面自己加上。

C/C++ code
char *_strcpy(char *str1, char *str2){    char *p=str1;    while(*str2)    {        *str1=*str2;        str2++;        str1++;    }    *str1 = '\0';    return p;}
[解决办法]
_strcpy函数没拷贝'\0';
改成下面这样:
C/C++ code
char *_strcpy(char *str1, char *str2){    char *p=str1;    while(*str1++ =  *str2++)        ;    return p;    } 

读书人网 >C++

热点推荐