vector<char>转string的方法
要将 std::vector<char> 转换为 std::string,可以通过 std::string 的构造函数直接从 vector 中构建字符串。
假设 std::vector<char> 包含的字符是有效的字符串(即以 null 结尾,或者你确定没有多余的字符),可以按照以下几种方法进行转换:
1. 通过 std::string 构造函数转换
你可以直接使用 std::string 的构造函数来将 vector 中的字符转换为字符串。
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
// 直接通过构造函数将 vector<char> 转换为 string
std::string str(vec.begin(), vec.end());
std::cout << str << std::endl; // 输出:Hello
return 0;
}
2. 如果 vector<char> 包含 C 风格字符串(以字符 \0 结尾)
如果 std::vector<char> 包含一个 C 风格的字符串(以字符 \0 结尾),可以这样转换:
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<char> vec = {'H', 'e', 'l', 'l', 'o', '\0'};
// 通过构造函数并忽略 '\0'
std::string str(vec.data()); // vec.data() 返回指向数组第一个元素的指针
std::cout << str << std::endl; // 输出:Hello
return 0;
}
3. 带 \0 字符串的转换方式
如果 vector<char> 包含 \0,但你想保留所有字符,包括 \0,可以使用以下方式:
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<char> vec = {'H', 'e', 'l', 'l', 'o', '\0', 'W', 'o', 'r', 'l', 'd'};
// 使用 vector 的 size 构造 string
std::string str(vec.data(), vec.size());
std::cout << str << std::endl; // 输出:Hello (with '\0')
return 0;
}
总结:
- 如果要将
vector<char>作为一个正常的字符串转换,可以直接用std::string构造函数。 - 如果
vector<char>包含以\0结尾的 C 风格字符串,可以用data()方法传递指针。
vector<char>转string的方法的更多相关文章
- 编写程序,从vector<char>初始化string
#include<iostream> #include<string> #include<vector> using namespace std; int main ...
- vector(char*)和vector(string)
vector<char*> ch; vector<string> str; for(int i=0;i<5;i++) { char *c=fun1();//通过这个语句产 ...
- Cstring转char、string、int等数据类型的方法(转载)
Cstring转char.string.int等数据类型的方法 (-- ::) 转载 标签: 杂谈 分类: VC CString 转char * CString cstr; char *p = (LP ...
- C++ char to string 方法
1. 使用string()构造函数方法 //method 1: the constructor of string() char c = 'F'; , c); cout << s ; 2. ...
- C# char[]与string互相转换的两种方法
1.string转换为char[]:char[] string.ToCharArray(); static void Main(string[] args) { s ...
- 实战c++中的string系列--std:vector 和std:string相互转换(vector to stringstream)
string.vector 互转 string 转 vector vector vcBuf;string stBuf("Hello DaMao!!!");----- ...
- Java String字符串方法
1.String构造函数 1> String() 2> String(char[] chars) String(char[] chars,int startIndex,int numCha ...
- 对bit、byte、TByte、Char、string、进制的认识
在学校老师就教1byte = 8bit,一个Byte在内存中占8个房间.每个房间都有门牌号.找到内存中的内容就找门牌号,寻址什么的,虽然在听,但是脑袋里一头雾水,到现在只知道会用就行,但原理也不是那么 ...
- 【C++】int、const char*、char*、char、string之间的转换
#include "stdafx.h" #include<string> #include<vector> #include<iostream> ...
- C++ 中int,char,string,CString类型转换
1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::stri ...
随机推荐
- ELK多租户方案
一.前言 日志分析是目前重要的系统调试和问题排查的重要手段之一,而目前分布式系统由于实例和机器众多,所以构建一套统一日志系统是非常必要的:ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用 ...
- Jmeter汉化成中文版
1.jmeter安装成功后,默认启动是英文版 2.汉化方法 到jmeter安装目录下找到\bin\jmeter.properties,右键记事本打开定位"#language=en" ...
- 【MongoDB】Re01 安装与基础操作
Linux安装 官网下载红帽安装版 #下载三个rpm包 wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongo ...
- MyBatisPlus公共字段自动填充
公共字段自动填充 公共字段 新增员工,修改.编辑员工信息时,都需要设置创建时间,修改时间等操作,这些操作过于重复.繁琐,为了有更快捷高效的,MyBatisPlus提供了公共字段自动填充功能,当我们执行 ...
- Git的GPG签名 —— Tag签名 Verified验证,防伪造的gitee/github commit验证
相关资料: 如何使用git通过ssh协议拉取gitee上的项目代码--如何正确的免密使用git 不论是gitee还是GitHub都有两种公钥设置,一种是ssh公钥,另一种则是GPG公钥.ssh公钥是为 ...
- 推荐一款界面优雅、功能强大的 .NET + Vue 权限管理系统
前言 今天推荐一款用 .NET 和 Vue3 实现的开源权限管理系统.它的界面清爽干净,功能强大,还具备灵活的角色权限分配功能,能够满足不同规模企业的管理需求.无论你是开发新手还是大神,都能轻松上手, ...
- Pytorch学习率更新
如需了解示例完整代码及其后续内容请访问: https://www.emperinter.info/2020/08/01/learning-rate-in-pytorch/ 缘由 自己在尝试了官方的代码 ...
- Digest Auth 摘要认证
1.该代码展示了使用Apache HttpClient库进行HTTP请求,并处理基于MD5的HTTP Digest认证的过程. Digests类实现了MD5加密算法,HttpUtils类处理了GET. ...
- int128输入输出流
using i128 = __int128; istream &operator>>(istream &is, i128 &x) { string s; is &g ...
- apollo配置动态更新
简单配置 使用@Value注解的配置会自动刷新配置 复杂对象 @Component("systemConfig") @ConfigurationProperties(prefix ...