如何将char数组转换为字符串?

新手上路,请多包涵

使用字符串的 c_str 函数然后执行 strcpy 将 C++ string 转换为 char 数组非常简单。但是,如何做相反的事情呢?

我有一个 char 数组,例如: char arr[ ] = "This is a test"; 要转换回: string str = "This is a test

原文由 RajSanpui 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

string 类有一个以 NULL 结尾的 C 字符串的构造函数:

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

string str(arr);

//  You can also assign directly to a string.
str = "This is another string";

// or
str = arr;

原文由 Mysticial 发布,翻译遵循 CC BY-SA 3.0 许可协议

投票最多的答案中遗漏了一个小问题。也就是说,字符数组可能包含 0。如果我们将使用上面指出的带有单个参数的构造函数,我们将丢失一些数据。可能的解决方案是:

 cout << string("123\0 123") << endl;
cout << string("123\0 123", 8) << endl;

输出是:

123

123 123

原文由 Yola 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题