型変換 パート2
CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 15/74。
C++では、数値を文字列に、またはその逆に変換することができます。値を文字列に変換するには、std::to_string()関数を使用できます:
int number = 789;
bool isValid = true;
string text1 = to_string(number); // "789" になります
string text2 = isValid ? "true" : "false"; // "true" になりますto_string() を使用して double を文字列に変換すると、元の数値にそれほど多くの小数点以下の桁数がない場合でも、デフォルトで小数点以下6桁まで表示されます。
例えば:
double n1 = 789.0;
string text1 = to_string(n1);
// "789.000000" になります
double n2 = 789.5;
string text2 = to_string(n2);
// "789.500000" になります
double n3 = 789.123;
string text3 = to_string(n3);
// "789.123000" になります文字列を別の型に変換するには、いくつかの方法があります:
文字列から整数への変換:
string numberText = "123";
int number = stoi(numberText); // 123になりますString から Double への変換:
string decimalText = "45.67";
double decimal = stod(decimalText); // 45.67 になります注意: 文字列を数値に変換する際、これらの関数は文字列の先頭から可能な限り多くの有効な文字を読み取ります。文字列が無効な文字で始まる場合にのみ、エラーをスローします:
string validStart = "42abc";
int number = stoi(validStart); // 42になります(末尾の文字は無視されます)
string invalidStart = "abc";
int number2 = stoi(invalidStart); // これはエラーをスローしますチートシート
数値から文字列への変換には std::to_string() を使用します:
int number = 789;
string text = to_string(number); // "789" になりますdouble型の変換では、デフォルトで小数点以下6桁が表示されます:
double n = 789.5;
string text = to_string(n); // "789.500000" になります文字列から整数への変換には stoi() を使用します:
string numberText = "123";
int number = stoi(numberText); // 123 になります文字列からdouble型への変換には stod() を使用します:
string decimalText = "45.67";
double decimal = stod(decimalText); // 45.67 になります注意: 無効な文字列を数値に変換しようとすると、エラーがスローされます。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。