C++ 拷贝操作
2021/6/11 20:21:03
本文主要是介绍C++ 拷贝操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 一 strcpy
- 二 strncpy
- 三 memcpy
- 四 std::copy std::copy_if std::copy_n std::copy_backward
- 五 参考
一 strcpy
-
头文件< cstring >
-
语法
char* strcpy( char* dest, const char* src );
-
解释
- 拷贝src到dest中,包括结束空字符
- 如果dest不够大或者两个字符串的范围有重叠,其行为未定义
- 返回值为dest
-
demo
// strcpy char *s1 = "1234"; char s2[3] = {0}; strcpy(s2, s1); std::cout << "s1: " << s1 << std::endl; std::cout << "s2: " << s2 << std::endl;
二 strncpy
-
头文件< cstring >
-
语法
char *strncpy( char *dest, const char *src, std::size_t count );
-
解释
- 拷贝src一定数量的字符到dest中,包括结束空字符
- 如果count比src的长度小,则dest将不是以空字符结尾
- 如果count比src的长度大,则继续填充空字符到dest中
-
demo
// strncpy char *s1 = "1234"; char s2[10] = {0}; strncpy(s2, s1, 5); std::cout << "s1: " << s1 << std::endl; std::cout << "s2: " << s2 << std::endl;
三 memcpy
-
头文件< cstring >
-
语法
void* memcpy( void* dest, const void* src, std::size_t count );
-
解释
- 从src中拷贝count个字节到dest中,过程中dest和src均被重新解释为unsigned char数组
- 如果dest和src有重叠,则行为未定义
- 如果dest或src为无效的或者空指针,其行为未定义,即使count为0
-
demo
// memcpy char *s1 = "1234"; char s2[10] = {0}; memcpy(s2, s1, 5); std::cout << "s1: " << s1 << std::endl; std::cout << "s2: " << s2 << std::endl;
四 std::copy std::copy_if std::copy_n std::copy_backward
- 头文件< algorithm >
- 参见 C++ 标准库 更易型算法
五 参考
- strcpy
- strncpy
- memcpy
- copy
- copy_n
- copy_backward
这篇关于C++ 拷贝操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享
- 2024-11-22ansible 的archive 参数是什么意思?-icode9专业技术文章分享
- 2024-11-22ansible 中怎么只用archive 排除某个目录?-icode9专业技术文章分享
- 2024-11-22exclude_path参数是什么作用?-icode9专业技术文章分享
- 2024-11-22微信开放平台第三方平台什么时候调用数据预拉取和数据周期性更新接口?-icode9专业技术文章分享
- 2024-11-22uniapp 实现聊天消息会话的列表功能怎么实现?-icode9专业技术文章分享
- 2024-11-22在Mac系统上将图片中的文字提取出来有哪些方法?-icode9专业技术文章分享
- 2024-11-22excel 表格中怎么固定一行显示不滚动?-icode9专业技术文章分享
- 2024-11-22怎么将 -rwxr-xr-x 修改为 drwxr-xr-x?-icode9专业技术文章分享
- 2024-11-22在Excel中怎么将小数向上取整到最接近的整数?-icode9专业技术文章分享