strlen()函数实现:
int my_strlen(const char* m_Pstr) //重写strlen()函数
int count = 0;
while (*m_Pstr != '\0')
{
m_Pstr++;
count++;
}
return count;
}
strcpy()函数实现:
//实现strcpy
char* my_strcpy(char* m_strDest, const char* m_strRsc)
{
m_strDest = new char[m_strlen(m_strRsc) + 1];
for (int i = 0; i < m_strlen(m_strRsc) + 1; i++)
{
*(m_strDest + i) = *(m_strRsc + i);
}
return m_strDest;
}
主函数main( ):
int main()
{
const char* strRsc = "我是字符串!";//汉字所占字节为2Byte
char* strDest = nullptr; //传参不允许传未初始化变量
strDest = my_strcpy(strDest,strRsc);
std::cout<< strDest << std::endl;
std::cin.get();
}
strcopy()可以改进,例如非完全复制版:
char* my_strcpy(m_strDest, m_strRsc, int length) ;//手动设置复制的长度
这里就不赘述了,原理同上,逐一拷贝即可。