gpt4 book ai didi

c++ - 在 C++ 中连接字符串和 boolean 值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:04:45 25 4
gpt4 key购买 nike

我想做如下的事情:

bool b = ...
string s = "Value of bool is: " + b ? "f" : "d";

我见过的所有示例都使用了 cout,但我不想打印字符串;只是存储它。

我该怎么做?如果可能的话,我想要一个分配给 char * 和一个分配给 std::string 的示例。

最佳答案

如果你的编译器足够新,它应该有 std::to_string :

<罢工>
string s = "Value of bool is: " + std::to_string(b);

这当然会附加 "1" (对于 true )或 "0" (对于 false )到您的字符串,而不是 "f""d"如你所愿。原因是 std::to_string 没有重载这需要 bool类型,因此编译器将其转换为整数值。

你当然可以分两步完成,首先声明字符串然后附加值:

string s = "Value of bool is: ";
s += b ? "f" : "d";

或者几乎像您现在做的那样,但将第二个明确创建为 std::string :

string s = "Value of bool is: " + std::string(b ? "f" : "d");

编辑: 如何获得 char来自 std::string 的指针

这是通过 std::string::c_str 完成的方法。但正如 Pete Becker 所指出的,您必须谨慎使用此指针,因为它指向字符串对象中的数据。如果对象被销毁,数据也会被销毁,指针(如果被保存)现在将无效。

关于c++ - 在 C++ 中连接字符串和 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com