我需要使用 std::string
来存储由 fgets()
检索到的数据。为此,我需要将 char*
返回值从 fgets()
转换为 std::string
以存储在数组中。如何才能做到这一点?
原文由 Jonathan Prior 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要使用 std::string
来存储由 fgets()
检索到的数据。为此,我需要将 char*
返回值从 fgets()
转换为 std::string
以存储在数组中。如何才能做到这一点?
原文由 Jonathan Prior 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 C 风格字符串转换为 C++ 标准字符串更容易
我们可以通过三种方式将 C 样式字符串转换为 C++ 标准字符串
第一个是使用构造函数,
char chText[20] = "I am a Programmer";
// using constructor
string text(chText);
第二个是使用 string::assign
方法
// char string
char chText[20] = "I am a Programmer";
// c++ string
string text;
// convertion from char string to c++ string
// using assign function
text.assign(chText);
第三个是赋值运算符(=),其中字符串类使用运算符重载
// char string
char chText[20] = "I am a Programmer";
// c++ string
// convertion from char string to c++ string using assignment operator overloading
string text = chText;
第三个也可以像下面这样写 -
// char string
char chText[20] = "I am a Programmer";
// c++ string
string text;
// convertion from char string to c++ string
text = chText;
第三个有点直截了当,可以在两种情况下使用
原文由 SHAH MD IMRAN HOSSAIN 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
std::string
有一个构造函数:请注意,此构造深度复制
s
和s
处的字符列表不应为nullptr
,否则行为未定义。