Menu
Coddy logo textTech

Приведение типов. Часть 2

Часть раздела Основы путешествия по C++ на Coddy — урок 15 из 74.

В C++ мы можем преобразовывать числа в строки и наоборот. Чтобы преобразовать значение в строку, мы можем использовать функцию std::to_string():

int number = 789;
bool isValid = true;
string text1 = to_string(number);  // становится "789"
string text2 = isValid ? "true" : "false";  // становится "true"

Когда вы преобразуете double в строку с помощью to_string(), по умолчанию будет отображаться 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 to Integer:

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

Примечание: Преобразование некорректных строк в числа приведет к ошибке.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы