c++ - 将 char 数组(无空终止)转换为字符串的最佳方法是什么

标签 c++ stl

我有一个已知大小(比如 10)的 char 数组,我想将它转换为 strng。要点是数组不是 NULL 终止的,因此不能使用以下示例代码中使用的这种技术。

char arr[ ] = "This is a test";

string str(arr);

我能做到:

 char * array=getArray();
 string output;
 for(int I=0;i<10;i++)
 {
    output.append(array[I]);
 }

或者更好的是:

 char * array=getArray();
 string output;
  output.append(10,array);

但是有没有更好的方法来做到这一点?

最佳答案

如果您没有以 nul 结尾的字符串,但您知道它的长度,则可以使用两个迭代器构造函数之一:

string str(arr, arr + len);

或适当的计数构造函数:

string str(arr, len);

关于c++ - 将 char 数组(无空终止)转换为字符串的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532281/

相关文章:

c++ - 'cout' 未在此范围内声明

c++ - 如何获取指向原始数据的 std::vector 指针?

c++ - STL map 排序

c++ - 在类声明中使用类型定义迭代器的问题

c++ - 如何跟踪 C++ 对象

c++ - is_const<const int&>::value 为 false——为什么?

c++ - 线程多次调用析构函数

具有自定义类的 C++ 动态二维数组

c++ - 将一张 map 的内容附加和替换到另一张 map ?

c++ - 如何找到对集合中一对之间的元素?