商务合作:179001057@qq.com

C++字符串拷贝函数(所有性能已在g++和vc下测试)

技术2022-05-11  0


某平台价值19860元的编程课程资料免费领取【点我领取】


1. void bcopy(const void *src, void *dest, size_t n);

功能: 拷贝n字节内容从src到dest

说明: 该函数在内存重叠情况下仍然正常,该函数建议不再使用,而是用memcpy代替

返回值: 无

 

2. void *memcpy(void *dest, const void *src, size_t n);

功能: 拷贝n字节内容从src到dest

说明: src和dest在内存中不可重叠,如果重叠请使用memmove代替

返回值: 返回 dest 地址

 

3. void *memmove(void *dest, const void *src, size_t n);

功能: 拷贝n字节内容从src到dest

说明: src和dest在内存中可以重叠,但是效率比memcpy略低!

返回值: 返回 dest 地址

 

4. void *memccpy(void *dest, const void *src, int c, size_t n);

功能: 拷贝n字节内容从src到dest,但是如果碰到c字符则停止拷贝.

返回值: 返回NULL或者字符c的下一地址

 

5. char *stpcpy(char *dest, const char *src);

功能: 拷贝src到dest

说明: 该函数不在ANSI和POSIX标准之内;vc6.0不支持

返回值: 返回 dest + strlen(src)的地址

 

6. char *strcpy(char *dest, const char *src);

功能: 拷贝src到dest

说明: 该函数可能溢出;源串和目的串的内存区域不能交叠,否则发生错误!

返回值: 返回 dest 的地址

 

 

7. char *strncpy(char *dest, const char *src, size_t n);

功能: 从src最多拷贝n个字节到dest.

说明:(1).如果src的长度小于n,那么将会连同'/0'拷贝到dest,否则dest将不会以'/0'结束(这时记得手动加'/0')!

         (2)源串和目的串的内存区域不能交叠,否则发生错误!

         (3)n最好不要超过src和dest的长度,dest内n字节的内容将会被赋值,src结束后的部分全部将全部置'/0'!


最新回复(0)