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

    技术2022-05-11  13

    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)