将char数组(没有null终止)转换为字符串的最佳方法是什么?

man*_*ans 1 c++ stl

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

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

string str(arr);
Run Code Online (Sandbox Code Playgroud)

我可以做这个:

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

或者甚至更好的是:

 char * array=getArray();
 string output;
  output.append(10,array);
Run Code Online (Sandbox Code Playgroud)

但有没有更好的方法呢?

jua*_*nza 6

如果你没有以空字符结尾的字符串,但是你知道它的长度,你可以使用两个迭代器构造函数:

string str(arr, arr + len);
Run Code Online (Sandbox Code Playgroud)

或适当的计数构造函数:

string str(arr, len);
Run Code Online (Sandbox Code Playgroud)