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整数を文字列に変換する関数を使用する
  • を作成し、次kodasのようostringstreamに「書き込み」ます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

sprintf()C++ で数値を文字列として書式設定するには、 、 、その他を含むいくつかの方法がありますboost:lexical_cast()。適切な比較と追加の提案については、Manor Farm の文字列フォーマッターを参照してください。さらに、C++11 にはstd::to_string. あなたのコンパイラはそれを持っているかもしれませんし、持っていないかもしれません。

于 2012-11-20T23:29:11.273 に答える