格式化返回字符串C++

Format a return string C++

本文关键字:C++ 字符串 返回 格式化      更新时间:2023-10-16

我想从C++中的一个函数返回一个字符串,该函数是由不同的字符串和一个整数创建的。我想创建一个形式为"ABCDFFFF00230000EFGH"的字符串。"ABCD"在command[0]中定义为字符串,"0023"是由answer定义的整数,"EFGH"command[4]中定义为串。

我试过:

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])

这给出了正确的答案。

使用字符串流(需要#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++中不太可能工作。做一些适当的研究。