我有一个已知大小的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)
但有没有更好的方法呢?
如果你没有以空字符结尾的字符串,但是你知道它的长度,你可以使用两个迭代器构造函数:
string str(arr, arr + len);
Run Code Online (Sandbox Code Playgroud)
或适当的计数构造函数:
string str(arr, len);
Run Code Online (Sandbox Code Playgroud)