常见笔试/面试题目,答案仅供参考
这个东西有些参考价值,和同学讨论一下发现还是有些错误,
函数的原型是:
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy
答案:
char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
return strDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ‘’)
;
return tempptr ;
}
的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String 的上述4 个函数。
答案:
String::String(const char *str)
{
if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断
{
m_data = new char[1] ;
m_data[0] = '' ;
}
else
{
m_data = new char[strlen(str) + 1];
strcpy(m_data,str);
}
}
String::String(const String &other)
{
m_data = new char[strlen() + 1];
strcpy(m_data,);
}
String & String:perator =(const String &other)
{
if ( this == &other)
return *this ;
delete []m_data;
m_data = new char[strlen() + 1];
strcpy(m_data,);
return *this ;
}
String::~ String(void)
{
delete []m_data ;
}
头文件中的ifndef/define/endif 干什么用?
答:防止该头文件被重复引用。
#include 和#incl
常见笔试面试题目 来自淘豆网www.taodocs.com转载请标明出处.