字符串拷贝函数 strcpy();
char * strcpy(char *dest, char const *src)
{
assert( (dest != NULL) && (src != NULL));
char *addr = dest;
while( (* dest ++ = *src ++) != '\0');
return addr;
}
这个问题出在哪里?
如果dest和src有重叠部分,上述如何改正。
相关推荐
C++中的位拷贝与值拷贝
位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程是深拷贝,反之,没有重新分配资源,是浅拷贝。 位拷贝,及"bitwise assignment"是指将一个对象的内存映像按位原封不动的复制给另一个对象,所谓值拷贝是指,将原对象的值复制一份给新对象。 在用"bitwise assignment"时会直接将对象的内存映像复制给另一个对象,这样两个对象会指向同一个内存区域,当一个对象被释放后,另一个对象的指针会成为空指针。这时,应该编写operator=和copy co
字符串、运算符重载
赋值、相加、比大小、前++、后++ #include #include class String { private: int length; char *ptr; public: String(char *s); ~String(); String(String &s); void display(); String operator =(String &s); String operator +(String &s); int operator >(String &s); int operator <(String &s); int operator =(String &s); String operator++(); String operator++(int); };
编写类String的构造函数
编写类String的构造函数,包括构造函数,析构函数,拷贝构造和赋值函数
运算符重载和函数重载
练习对字符串的常用操作,进而加深对类的多态性的理解: 如运算符重载和函数重载 字符串连接,+=运算符重载 求子串: 左边几个字符,,, Left(int nCount) 右边几个,, Right(int nCount) 某个位置开始的几个字符 Mid(int nPos,int nCout) 2..进一步熟悉掌握对类的构造函数重载,拷贝构造的使用 目录: 程序代码实现部分: p2----p6 实验结果部分: P7 实验中遇到问题及解决方法: P7----P9 实验心得: P9
一套很不错的做游戏开发的面试题
有兴趣从事游戏开发的朋友不妨用这套题自测一下


