0

有没有一种简单的方法将整数附加到字符串?

我有一个这样的for循环:

for (int i = 0; i < text.length(); i++) {
  for (int g = 0; g < word.length(); g++) {
    if (text[i] == word[g]) {
      kodas.append(g);
    }
  }
}

我需要得到相等的数组的索引,索引当然是整数类型。但是当我这样做时,我得到一个错误:

invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]|

有没有办法解决这个问题?

4

5 回答 5

7

如果您正在使用 std::strings,请使用 stringstream:#include <sstream>

#include <sstream>
using namespace std;
string oldString = "old";
int toAppend = 5;
stringstream ss(toAppend);
string newString = oldString + ss.str();

newString将会"old5"

于 2012-11-20T23:28:59.157 回答
1

的。

例如,您可以:

  • 使用itoa将整数转换为字符串的函数
  • 像你想要的那样做你kodasostringstream和“写”到它coutkodas << g
于 2012-11-20T23:28:28.863 回答
1

最简单的是这样的:

if (kodas.empty()) { kodas += ' '; }
kodas += std::to_string(g);

如果您没有 C++11,请boost::lexical_cast<std::string>(g)改用。

一切都失败了,你可以做这样可怕的事情:

kodas += static_cast<std::ostringstream&>(std::ostringstream() << g).str();
于 2012-11-20T23:28:43.530 回答
0

itoa(),它的 into alpha 函数,应该可以帮助你。如果您愿意,sprintf 或 vsprintf 也可以使用

于 2012-11-20T23:28:54.697 回答
0

在 C++ 中有几种将数字格式化为字符串的方法,包括sprintf()boost:lexical_cast()等。请参阅Manor Farm 的字符串格式化程序以获得很好的比较和其他建议。此外,C++11 有std::to_string. 你的编译器可能有也可能没有。

于 2012-11-20T23:29:11.273 回答