提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
c++ char[]转换 string array vector 方法代码示例。
提示:以下是本篇文章正文内容,下面案例可供参考
一、代码示例?
#include <iostream>
#include <vector>
#include <string>
#include <array>
#include <list>
#include <algorithm>
#include <string.h>
using namespace std;
std::string charArrayToString(const char* cstr) {
std::string result;
while (*cstr != '\0') { // 遍历C风格字符串直到遇到null终止符
result.push_back(*cstr++); // 将当前字符添加到std::string中,并移动到下一个字符
}
return result;
}
int main()
{
// char[] 转 string 1
char buf[256] = "hello world!";
string buf_s(buf);
cout << buf_s.size() << buf_s <<endl;
buf_s.clear();
cout << buf_s.size() << buf_s <<endl;
// char[] 转 string 2
buf_s = charArrayToString(buf);
cout << buf_s.size() << buf_s <<endl;
// string 转 char[] 1
string buf_s1 = "hello world!1";
char buf1[256] = {0};
strcpy(buf1, buf_s1.c_str());
cout << "buf1: " << buf1 <<endl;
// string 转 char[] 2
buf_s1 = "hello world!11";
std::copy(buf_s1.begin(), buf_s1.end(), buf1); // 复制字符,但不包括null终止符
buf1[buf_s1.size()] = '\0';
cout << "buf1: " << buf1 <<endl;
// char[] 转 array 1
char a_buf[256] = "Hello, World!";
array<char, 256> arr;
std::copy_n(a_buf, 256, arr.begin());
std::cout << "Data in std::array from char[]: ";
for (const auto& ch : arr) {
std::cout << ch;
}
std::cout << std::endl;
// array 转 char[] 1
char a_buf1[256] = {0};
array<char, 256> arr1 = {"hello world!!"};
std::copy_n(arr1.begin(), 256, a_buf1);
cout << a_buf1 << endl;
// char[] 转 vector 1
char v_buf[256] = "Hello, World!";
std::vector<char> vec;
vec.reserve(sizeof(v_buf) - 1); // 预分配内存
std::copy_n(v_buf, sizeof(v_buf) - 1, std::back_inserter(vec));
// 输出 std::vector<char> 中的数据
std::cout << "Data in std::vector<char>: ";
for (const auto& ch : vec) {
std::cout << ch;
}
std::cout << std::endl;
// vector 转 char[] 1
char v_buf_1[256] = {0};
std::copy_n(vec.begin(), vec.size(), v_buf_1);
cout << v_buf_1 << endl;
return 0;
}
总结
以上 c++ char[]转换 string array vector 方法代码示例,仅供参考。