笔试面试过程中出现频率超高的一个函数就是strcpy函数了。刚开始出于偷懒投机的想法,就没有好好自己去写写,去研究研究,一直都有些模糊,有些细节的地方没有注意。面试的时候面试官也只给我的代码给6分(满分10分),这个就深深地刺激了我一下,所以就好好写写了。下面就是我在VC6.0上编译通过验证正确的代码。
#include <iostream>
#include <string>
using namespace std;
char *strcpy0(char *str1,const char *str2)
{
if (str2 == NULL)//首先判断str2是否为空
{
return NULL;
}
int nleg = 0;
nleg = strlen(str2);
str1 = (char *)malloc(nleg);//为str1分配内存
for (int i = 0;i < nleg;i++)//这里只复制了结束符之前的字符
{
str1[i] = str2[i];
}
str1[++i] = '\0';//添加结束符到str1中
return str1;
}
void main()
{
char *str1 = NULL;
const char *str2 = "Hello VC";
str1 = strcpy0(str1,str2);
cout<<str1<<endl;
}
其中肯定还是有些需要提高的地方,如果有大神请指教吧!在网上看到的比较多的是下面的while语句