昨天看的道题目,试了下,两个程序,第一个貌似正常,结果输出数组越界,第二个稍微改动,程序崩溃....求助....
已知 strcpy函数的原型是 char *strcpy (char *strDest,const char *strSrc);其中strDest是目的字符串 strSrc是源字符串,不能调用C++/C的字符串库函数
写出strcpy函数???
char *strcpy (char *strDest,const char *strSrc)
上面是题目
#include<iostream>
using namespace std;
char *strcpy (char *strDest,const char *strSrc);
int main()
{
char *s1="hello word";
char*s2=new char[strlen(s1)+1];
strcpy(s2,s1);
cout<<s1<<endl;
cout<<s2<<endl;
system("pause");
return 0;
}
char *strcpy (char *strDest,const char *strSrc)
{
int i;
for(i=0;i<strlen(strSrc);i++)
strDest[i]=strSrc[i];
return strDest;
}
输出来的结果:hello word
hello wordrosoftP葑勳O
请按任意键继续. . .求解释
改动后:
#include<iostream>
using namespace std;
char *strcpy (char *strDest,const char *strSrc);
int main()
{
char *s1;
cin>>s1;
for(int j=0;j<strlen(s1);j++)
cout<<s1[j];
char*s2=new char[strlen(s1)+1];
strcpy(s2,s1);
cout<<s2<<endl;
system("pause");
return 0;
}
char *strcpy (char *strDest,const char *strSrc)
{
int i;
for(i=0;i<strlen(strSrc);i++)
strDest[i]=strSrc[i];
return strDest;
}
程序崩溃.....求助.....