input; std::string message = "Today's-6ren">
gpt4 book ai didi

c++ - 如何连接 "constant strings"和字符?

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

执行以下操作的“正确方法”是什么? (注意,我还不想将消息输出到屏幕上,数据需要存储在一个变量中。)

std::cout << "Enter a letter: ";    
char input;
std::cin >> input;

std::string message = "Today's program was brought to you by the letter '" + input + "'.";

代码给出了错误消息 invalid operands of types const char* and const char [3] to binary operator+

我明白为什么会出现此消息。在谷歌搜索解决方案时,出现的结果建议依次将每个项目转换为字符串。但是,如果您必须连接十几个项目,这就变得不切实际了:

std::string("x:") + x + std::string(", y:") + y + std::string(", width:") + width + std::string(", height:") + height + ...;

在 C++ 中将字符串、字符、字符数组和任何其他可转换的数据连接成单个字符串的“正确方法”是什么?有没有类似 Python's beautiful string formatting features 的东西在 C++ 中?

最佳答案

您尝试执行的操作不会起作用,因为 C++ 将您的串联视为添加多个 char 指针的尝试。如果您显式地将系列中的 first 元素转换为 std::string,它应该可以工作。

更改您的原始代码

string message = "Today's program was brought to you by the letter '" + input + "'.";

为此:

string message = std::string("Today's program was brought to you by the letter '")
+ input + "'.";

q.v. this SO post其中更详细地讨论了这个问题(虽然我不知道为什么它因为不是一个真正的问题而被关闭)。

关于c++ - 如何连接 "constant strings"和字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32263347/

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