このサンプルコードは有効ですか?
std::string x ="There are";
int butterflies = 5;
//the following function expects a string passed as a parameter
number(x + butterflies + "butterflies");
ここでの主な質問は、+演算子を使用して文字列の一部として整数を渡すことができるかどうかです。ただし、他にエラーがある場合はお知らせください:)
このサンプルコードは有効ですか?
std::string x ="There are";
int butterflies = 5;
//the following function expects a string passed as a parameter
number(x + butterflies + "butterflies");
ここでの主な質問は、+演算子を使用して文字列の一部として整数を渡すことができるかどうかです。ただし、他にエラーがある場合はお知らせください:)
C ++は、そのような文字列への自動変換を行いません。文字列ストリームを作成するか、ブーストレキシカルキャストのようなものを使用する必要があります。
この目的のために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;
}
いいえ、機能しません。C++はタイプレス言語ではありません。したがって、整数を文字列に自動的にキャストすることはできません。strtol、stringstreamなどを使用します。
ここでは、C ++よりもCが多いですが、sprintf
(これは、に似printf
ていますが、結果を文字列に入れます)が役立ちます。
整数を文字列に変換する安全な方法は、次のような抜粋です。
#include <string>
#include <sstream>
std::string intToString(int x)
{
std::string ret;
std::stringstream ss;
ss << x;
ss >> ret;
return ret;
}
上記の理由により、現在の例は機能しません。