我想从C ++中的一个函数返回一个字符串,该函数是由各种字符串和整数创建的。我想创建一个"ABCDFFFF00230000EFGH"
形式的字符串。 “ command[0]
被定义为字符串,"0023"
是由answer
定义的整数,"EFGH"
被定义为command[4]
的字符串。 / p>
我尝试过:
return "{0}FFFF{1}0000{2}".format(command[0], answer, command[4]);
但这会导致错误:
成员引用基本类型'const char [18]'不是结构或联合
我尝试过:
return (command[0], "FFFF", answer, "0000", command[4]);
但这仅返回command[4]
的值。
我尝试过:
return (command[0] + "FFFF", answer + "0000" + command[4]);
我也已经用Python编写了这段代码:
return "{0}FFFF{1}0000{2}".format(command[0], answer, command[4])
哪个给出了正确的答案。
答案 0 :(得分:5)
使用字符串流(需要#include <sstream>
和#include <iomanip>
)。格式可能不完全正确,但是可以帮助您入门。
std::ostringstream oss;
oss << command[0] << "FFFF" << setfill('0') << std::setw(4) << answer << "0000" << command[4];
return oss.str();
但是,不要仅仅尝试使用Python的随机事物,因为它们不太可能在C ++中起作用。做一些适当的研究。