格式化返回字符串C ++

时间:2018-07-21 10:03:36

标签: c++ string return

我想从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])

哪个给出了正确的答案。

1 个答案:

答案 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 ++中起作用。做一些适当的研究。