0

このサンプルコードは有効ですか?

std::string x ="There are";
int butterflies = 5;
//the following function expects a string passed as a parameter
number(x + butterflies + "butterflies");

ここでの主な質問は、+演算子を使用して文字列の一部として整数を渡すことができるかどうかです。ただし、他にエラーがある場合はお知らせください:)

4

5 に答える 5

4

C ++は、そのような文字列への自動変換を行いません。文字列ストリームを作成するか、ブーストレキシカルキャストのようなものを使用する必要があります。

于 2012-08-02T01:01:42.597 に答える
2

この目的のためにstringstreamを次のように使用できます。

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
    stringstream st;
    string str;

    st << 1 << " " << 2 << " " << "And this is string" << endl;
    str = st.str();

    cout << str;
    return 0;
}
于 2012-08-02T01:06:48.020 に答える
1

いいえ、機能しません。C++はタイプレス言語ではありません。したがって、整数を文字列に自動的にキャストすることはできません。strtol、stringstreamなどを使用します。

于 2012-08-02T01:02:58.230 に答える
1

ここでは、C ++よりもCが多いですが、sprintf(これは、に似printfていますが、結果を文字列に入れます)が役立ちます。

于 2012-08-02T01:04:31.203 に答える
1

整数を文字列に変換する安全な方法は、次のような抜粋です。

#include <string>
#include <sstream>

std::string intToString(int x)
{
  std::string ret;
  std::stringstream ss;
  ss << x;
  ss >> ret;
  return ret;
}

上記の理由により、現在の例は機能しません。

于 2012-08-02T01:04:39.927 に答える