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 ...
随机推荐
- leetcode2397. 被列覆盖的最多行数 回溯法/枝剪
第一次手搓一个回溯法,超时后采用枝剪勉强通过 class Solution { int max=0; int numSelect; public int maximumRows(int[][] mat ...
- browsermob-proxy-2.1.4启动失败,报错ProxyServerError: The Browsermob-Proxy server process failed to start
报错信息:ProxyServerError: The Browsermob-Proxy server process failed to start. Check <_io.TextIOWrap ...
- CentOS安装RustDesk自建服务器
一.安装node.js 1.下载并解压 [root@VM-8-2-centos src]# cd /usr/local # 下载node文件 [root@VM-8-2-centos local]# w ...
- 7月24号python:库存管理
7月24号python:库存管理 题目: 仓库管理员以数组 stock 形式记录商品库存表.stock[i] 表示商品 id,可能存在重复.原库存表按商品 id 升序排列.现因突发情况需要进行商品 ...
- 【Spring】05 注解开发
环境搭建 配置ApplicationContext.xml容器文件[半注解实现] <?xml version="1.0" encoding="UTF-8" ...
- 【转载】 5:0!AI战胜人类教官,AlphaDogfight大赛落幕
原文:https://baijiahao.baidu.com/s?id=1675621109599102721&wfr=spider&for=pc ------------------ ...
- SemanticKernel/C#:实现接口,接入本地嵌入模型
前言 本文通过Codeblaze.SemanticKernel这个项目,学习如何实现ITextEmbeddingGenerationService接口,接入本地嵌入模型. 项目地址:https://g ...
- ARM架构及ARM指令集、Thumb指令集你了解多少?
https://www.sohu.com/a/339622340_100281310 1991 年ARM 公司成立于英国剑桥,在成立后的那几年,ARM业绩平平,工程师们也人心惶惶,害怕随时都会失业.在 ...
- chmod 使用
数字 权限 4 (100) 读 2 (010) 写 1 (001) 执行 u 表示该文件的拥有者,g 表示该文件的拥有者所属的组,o 表示其他人,a 表示所有人. e.g. # 数字表示法 chmod ...
- Linux 扩展磁盘分区
之前安装 Ubuntu 虚拟机时使用的都是默认配置,虚拟机硬盘分配了 60 GB.后来想要扩容,特此记录一下扩容过程. 在操作前请做好备份 首先在 VMware 中修改虚拟硬盘大小. 然后进入虚拟机, ...