Строка для двойного преобразования C++ (String to double)

Строка для двойного преобразования C++ (String to double) Программирование и разработка

Рассмотрим следующий строковый литерал:

«У меня есть книги стоимостью 14,25 доллара, а другие — 34,87 доллара».

Теперь подстроки «14,25» и «34,87» являются строковыми литералами, а не числами. Если у вас есть код,

«14,25» + «34,87»

в C ++ вы не получите 49.12. Фактически, компилятор должен выдать сообщение об ошибке. Чтобы получить результат 49,12, «14,25» необходимо преобразовать в числовой тип double или float, а «34,87» нужно преобразовать в числовой тип double или float.

Название этого руководства — «Преобразование строки C ++ в двойное преобразование». Ваша цель — преобразовать строку в двойную; или сделать все, что связано с этим?

  • строка в целое число
  • строка в длинное целое число
  • строка для плавания
  • строка для удвоения
  • строка в длинный двойной

В этом руководстве объясняются все эти преобразования и многое другое. Конвертируется объект в строковой форме. В строковом классе C ++ есть функции для этого. Чтобы использовать эти функции, в программу должен быть включен строковый класс.

Преобразование строки в целое число

Следующая программа делает это:

    «20» to int + «30» to int = 50 as int

Используемый упрощенный синтаксис преобразования:

    stoi(str)

где stoi означает преобразование строки в целое число. Программа:

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

int main()
{
char str1[] = «20»;
char str2[] = «30»;
int num1 = stoi(str1);
int num2 = stoi(str2);
int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Преобразование строки в длинное целое число

Следующая программа делает это:

    «20» to long int + «30» to long int = 50 as long int

Используемый упрощенный синтаксис преобразования:

    stol(str)

где stol означает преобразование строки в длинное целое число. Программа:

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

int main()
{
char str1[] = «20»;
char str2[] = «30»;
long int num1 = stol(str1);
long int num2 = stol(str2);
long int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Преобразование строки в длинное целое без знака

Следующая программа делает это:

    «20» to unsigned long int + «30» to unsigned long int = 50 as unsigned long int

Используемый упрощенный синтаксис преобразования:

    stoul(str)

где stoul означает преобразование строки в длинное целое без знака. Программа:

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

int main()
{
char str1[] = «20»;
char str2[] = «30»;
unsigned long int num1 = stoul(str1);
unsigned long int num2 = stoul(str2);
unsigned long int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Преобразование строки в беззнаковое длинное длинное целое число

Следующая программа делает это:

    «20» to unsigned longlong int + «30» to unsigned long long int = 50 as unsigned longlong int

Используемый упрощенный синтаксис преобразования:

    stoull(str)

где stoul означает преобразование строки в длинное целое без знака. Программа:

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

int main()
{
char str1[] = «20»;
char str2[] = «30»;
unsigned long long int num1 = stoull(str1);
unsigned long long int num2 = stoull(str2);
unsigned long long int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Преобразование строки в число с плавающей запятой

Следующая программа делает это:

    «14.25» to float + «34.87» to float = 49.12 as float

Используемый упрощенный синтаксис преобразования:

    stof(str)

где stof означает «строка-поплавок». Программа:

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

int main()
{
char str1[] = «14.25»;
char str2[] = «34.87»;
float num1 = stof(str1);
float num2 = stof(str2);
float result = num1 + num2;
cout << result << endl;

return 0;
}

Результат:

49.12

Преобразование строки в двойное преобразование

Следующая программа делает это:

    «14.25» to double + «34.87» to double = 49.12 as double

Используемый упрощенный синтаксис преобразования:

    stod(str)

где stof означает «строка-поплавок». Программа:

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

int main()
{
char str1[] = «14.25»;
char str2[] = «34.87»;
double num1 = stod(str1);
double num2 = stod(str2);
double result = num1 + num2;
cout << result << endl;

return 0;
}

Результат:

    49.12

Строка в длинное двойное преобразование

Следующая программа делает это:

    «14.25» to long double + «34.87» to long double = 49.12 as double

Используемый упрощенный синтаксис преобразования:

    stold(str)

где stof означает «строка-поплавок». Программа:

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

int main()
{
char str1[] = «14.25»;
char str2[] = «34.87»;
long double num1 = stold(str1);
long double num2 = stold(str2);
long double result = num1 + num2;
cout << result << endl;

return 0;
}

Результат:

    49.12

Полный синтаксис

String to Integer

Полный синтаксис для преобразования строки в int:

    int stoi(const string& str, size_t* idx = nullptrint base = 10)

Второй аргумент может быть разрешен как nullptr. По умолчанию для третьего аргумента используется основание 10. Его можно изменить на другое основание, например, на 16.

Следующая программа делает это:

    «A» to intbase16 + «B» to intbase16 = 21 as intbase10

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

int main()
{
char str1[] = «A»;
char str2[] = «B»;
int num1 = stoi(str1, nullptr16);
int num2 = stoi(str2, nullptr16);
int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 21.

Аналогично объясняются и другие синтаксисы.

Пробел

Пробелы: ’’, ’\ n’, ’\ r’, ’\ f’, ’\ t’, ’\ v’. Один или несколько из них могут быть перед или после числа в строке. Во время преобразования пробелы удаляются.

Следующая программа показывает, как удаляются пробелы при преобразовании строки в int:

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

int main()
{
char str1[] = «\n 20 \n«;
char str2[] = «\t 30 \t«;
int num1 = stoi(str1);
int num2 = stoi(str2);
int result = num1 + num2;
cout << result << endl;

return 0;
}

Следующая программа показывает, как удаляются пробелы при преобразовании строки в long int:

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

int main()
{
char str1[] = «\n 20 \n«;
char str2[] = «\t 30 \t«;
long int num1 = stol(str1);
long int num2 = stol(str2);
long int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Следующая программа показывает, как удаляются пробелы при преобразовании строки в unsigned long int:

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

int main()
{
char str1[] = «\n 20 \n«;
char str2[] = «\t 30 \t«;
unsigned long int num1 = stoul(str1);
unsigned long int num2 = stoul(str2);
unsigned long int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Следующая программа показывает, как удаляются пробелы при преобразовании строки в unsigned long long int:

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

int main()
{
char str1[] = «\n 20 \n«;
char str2[] = «\t 30 \t«;
unsigned long long int num1 = stoull(str1);
unsigned long long int num2 = stoull(str2);
unsigned long long int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 50.

Следующая программа показывает, как удаляются пробелы при преобразовании строки в число с плавающей запятой:

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

int main()
{
char str1[] = «\n 14.25 \n«;
char str2[] = «\t 34.87 \t«;
float num1 = stof(str1);
float num2 = stof(str2);
float result = num1 + num2;
cout << result << endl;

return 0;
}

Результат:

    49.12

Следующая программа показывает, как удаляются пробелы при преобразовании строки в двойную:

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

int main()
{
char str1[] = «\n 14.25 \n«;
char str2[] = «\t 34.87 \t«;
double num1 = stod(str1);
double num2 = stod(str2);
double result = num1 + num2;
cout << result << endl;

return 0;
}

Результат:

    49.12

Следующая программа показывает, как удаляются пробелы при преобразовании строки в long double:

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

int main()
{
char str1[] = «\n 14.25 \n«;
char str2[] = «\t 34.87 \t«;
long double num1 = stold(str1);
long double num2 = stold(str2);
long double result = num1 + num2;
cout << result << endl;

return 0;
}

Результат:

    49.12

Следующая программа показывает, как удаляются пробелы при преобразовании строки в int по основанию 16:

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

int main()
{
char str1[] = «\n A \n«;
char str2[] = «\t B \t«;
int num1 = stoi(str1, nullptr16);
int num2 = stoi(str2, nullptr16);
int result = num1 + num2;
cout << result << endl;

return 0;
}

Выход 21.

Заключение

В C ++ есть функции для преобразования строк в числа. При преобразовании пробелы игнорируются. Если в строке есть символ, который не является цифрой или пробелом, результат будет ненадежным. Функции находятся в строковой библиотеке: stoi (), stol (), stoul (), stoll (), stoull (), stof (), stod () и stold ().

Читайте также:  Работа с файлами CSV с использованием Python, с примерами
Оцените статью
bestprogrammer.ru
Добавить комментарий