Как перевести строку в int

Как преобразовать строку в int в C++?

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

Предварительные условия:

Прежде чем проверять примеры этого руководства, вы должны проверить, установлен ли компилятор g ++ в системе. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C ++ и создания исполняемого кода. Здесь приложение Visual Studio Code было использовано для компиляции и выполнения кода C ++.

Использование функции atoi ()

Функция atoi () используется для возврата числа путем преобразования строки, созданной массивом символов, в целое число. Для использования этой функции необходимо включить заголовочный файл cstdlib.

Синтаксис:

Создайте файл C ++ со следующим кодом для преобразования строки чисел в целое число с помощью функции atoi (). Здесь функция strcpy () использовалась для преобразования строки в массив символов. Значение входной строки преобразовано в массив символов, и преобразованное значение было использовано в функции atoi () для получения целочисленного значения строки. Затем преобразованное целое число будет напечатано, если преобразование выполнено правильно.

//Include for printing the output

//Include for using the atoi() function

//Include for using the strcpy function

//Declare a string variable
std :: string strData ;
//Declare a chracter array variable
charstrarr [ 50 ] ;

//Take a number from the user
std :: cout <> strData ;

int number = std :: atoi ( strarr ) ;
//Print the number
std :: cout «The converted number is = « number ‘ \n ‘ ;
return0 ;
>

Следующие выходные данные появятся, если 6090 будет принято в качестве входных данных после выполнения кода.

Как перевести строку в int

Использование функции stoi ()

Функция atoi () используется для возврата числа путем преобразования строкового значения в целое число. Первый аргумент этой функции является обязательным, а остальные аргументы — необязательными. Синтаксис этой функции приведен ниже.

Синтаксис:

Создайте файл C ++ со следующим кодом для преобразования строки в целое число с помощью функции stoi (). После выполнения кода входное значение, полученное от пользователя, будет преобразовано в число и распечатано, если входное значение является допустимым числом. Если входное значение содержит какой-либо алфавитный или нечисловой символ, будет сгенерировано исключение invalid_argument и будет напечатано сообщение об ошибке.

//Include for printing the output

intmain ( )
<
//Declare a string variable
std :: string strData ;

//Take a number from the user
std :: cout <> strData ;

//Convert the string into number with error handling
try <
//Convert the string into integer
int number = std :: stoi ( strData ) ;
//Print the converted number
std :: cout «The converted number is = « number ‘ \n ‘ ;
>
//Handle error if invalid number is given
catch ( std :: invalid_argumentconst & e ) <
std :: cout «Input value is not a number. \n « ;
>
return0 ;
>

Следующий вывод появится, если после выполнения кода в качестве входных данных будет выбрано 4577.

Как перевести строку в int

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

Как перевести строку в int

Использование строковых потоков

Использование функции istringstream () — еще один способ преобразовать строку в целое число с помощью оператора ’>>’. Создайте файл C ++ со следующим кодом для преобразования строковых данных в целое число с помощью функции istringstream (). Строковое значение чисел было присвоено строковой переменной в коде, который использовался в качестве значения аргумента функции istringstream (). Затем было напечатано преобразованное целочисленное значение.

//Include for printing the output

//Include for using the istringstream() function

intmain ( )
<
//Declare a string variable
std :: string strData = «12345» ;
//Declare an integer variable
intnumber ;
//Convert the string into the integer
std :: istringstream ( strData ) >> number ;
//Print the converted number
std :: cout «The converted number is = « number ‘ \n ‘ ;
return0 ;
>

После выполнения кода появится следующий вывод.

Как перевести строку в int

Используя функцию sscanf ()

Использование функции sscanf () — еще один способ преобразовать строку в целое число. Для использования этой функции необходимо включить заголовочный файл cstdio. Создайте файл C ++ со следующим кодом для преобразования строкового значения в целое число с помощью функции sscanf (). После выполнения скрипта у пользователя будет взято строковое значение. Если входное значение является допустимым числовым значением, то входное значение будет преобразовано в целое число и напечатано; в противном случае будет напечатано сообщение об ошибке.

//Include for printing the output

//Include for using the sscanf() function

intmain ( ) <
//Declare a string variable
std :: string strData ;
//Declare an integer variable
intnumber ;

Следующий вывод появится, если 78325 будет принят в качестве ввода после выполнения кода.

Как перевести строку в int

Использование цикла for

В следующем примере показано, как преобразовать строковое значение в целочисленное значение без использования какой-либо встроенной функции. Создайте файл C ++ со следующим кодом для преобразования строкового значения в целое число с помощью цикла for. Значение строки, число было назначено в переменный, которая была использована в » для » петли, чтобы преобразовать строку в целое число.

intmain ( )
<
//Declare a string variable
std :: string strData = «6000» ;
//Declare an integer variable
intnumber ;

//Convert the string into integer
for ( charchr : strData )
<
if ( chr >= ‘0’ && chr ‘9’ ) <
number = number * 10 + ( chr — ‘0’ ) ;
>

//Print the converted number
std :: cout «The converted number is = « number ‘ \n ‘ ;
return0 ;
>

Если после выполнения кода в качестве входных данных будет выбрано 6000, появится следующий вывод.

Как перевести строку в int

Заключение

В этом руководстве описаны пять различных способов преобразования строки в число с использованием простых примеров, помогающих читателям узнать, как преобразовать любую строку в целое число в программировании на C ++.

Источник

Функции преобразования строк в числовое значение

Комментарии

Каждая функция в семействе strtod преобразует строку, завершающуюся нуль-символом, в числовое значение. Доступные функции перечислены в следующей таблице.

ФункцияОписание
strtodПреобразует строку в значение двойной точности с плавающей запятой
strtolПреобразует строку в целочисленное значение типа long
strtoulПреобразует строку в беззнаковое целочисленное значение типа long
_strtoi64Преобразует строку в 64-разрядное целое число типа __int64
_strtoui64Преобразует строку в беззнаковое 64-разрядное целое число типа __int64

Если в момент вызова для предоставляемого пользователем указателя на символ конца преобразования не задано значение NULL, вместо него сохраняется указатель на символ, на котором остановилось сканирование. Если выполнить преобразование невозможно (не найдены допустимые цифры или указано недопустимое основание), по этому адресу сохраняется значение указателя на строку.

strtod ожидает строку следующего вида:

whitespace может содержать пробелы или символы табуляции, которые игнорируются; sign — это или плюс ( ), или минус ( ); и digits — одна или несколько десятичных цифр. Если перед символом основания системы счисления нет никаких цифр, то после него должна отображаться хотя бы одна цифра. За десятичными цифрами может следовать показатель степени, который состоит из вводной буквы (d, D, eили E) и, при необходимости, целого числа со знаком. Если не отображается ни экспоненциальная часть, ни символ основания системы счисления, то предполагается, что символ основания системы счисления следует за последней цифрой в строке. Первый символ, который не соответствует этой форме, останавливает сканирование.

Если значение аргумента основания лежит в диапазоне от 2 до 36, оно используется как основание системы счисления. Если он равен 0, то начальные символы, на которые ссылается указатель конца преобразования, используются для определения основания. Если первый символ равен 0, а второй символ не «x» или «X», то строка интерпретируется как восьмеричное целое число; в противном случае она интерпретируется как десятичное число. Если первый символ — 0, а второй символ равен x или X, строка интерпретируется как шестнадцатеричное целое число. Если первый символ — от 1 до 9, строка интерпретируется как десятичное целое число. Буквам от «а» до «z» (или от «А» до «Z») присваиваются значения от 10 до 35; допускаются только буквы с присвоенными значениями меньше base. strtoul и _strtoui64 допускают в качестве префикса знак плюса (+) или знак минуса (); знак минуса перед числом показывает, что возвращаемое значение отрицательное.

Если значение, возвращаемое этими функциями, вызвало бы переполнения или потерю точности, или если преобразование невозможно, возвращаются значения особых случаев, как показано ниже:

ФункцияУсловиеВозвращенное значение
strtodПереполнение+/- HUGE_VAL
strtodПотеря точности или отсутствие преобразования0
strtolПереполнение +LONG_MAX
strtolПереполнение –LONG_MIN
strtolПотеря точности или отсутствие преобразования0
_strtoi64Переполнение +_I64_MAX
_strtoi64Переполнение –_I64_MIN
_strtoi64Преобразование не выполнено0
_strtoui64Переполнение_UI64_MAX
_strtoui64Преобразование не выполнено0

_I64_MAX, _I64_MIN и _UI64_MAX определены в файле LIMITS.H.

Источник

Описание функций языка Си

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

atoi – преобразование строки в число типа int

#include
int atoi (const char *str);

str – указатель на строку, которую необходимо преобразовать в число.

Функция atoi () преобразует строку, на которую указывает аргумент str, в число типа int. Преобразование заканчивается, когда встречается символ не являющейся цифрой или, когда будет преобразована вся строка. Если первый символ строки не цифра, то функция вернет 0 и завершит работу.

Если число в строке превышает максимальный или минимальный размер числа типа int, то функция возвращает соответственно максимально или минимально допустимое число для типа int. Возвращаемая величина зависит от аппаратной платформы на которой запускается программа.

От функции atol () отличается типом возвращаемого числа и как следствие макимальной длинной преобразуемой строки. Для atoi возвращаемое число имеет тип int, а соответственно разрядность 16 или 32 бита в зависимости от аппаратной платформы, на которой запускается программа. Для atol возвращаемое число имеет тип long int, который всегда 32 разрядный, не зависимо от архитектуры процессора.

Так, на пример, в результате преобразования строки «217bg12» будет получено число 217, а при преобразовании строки «b237пр» будет получено число 0.

В примере преобразуется строка «652.23brrt» в число и результат выводится на консоль.

Источник

Преобразование String в Int и Int в String в Python

В этом руководстве мы узнаем, как преобразовать String в int и int в String в python.

Строка Python в Int

Собственно, во многих случаях это необходимо. Например, вы читаете некоторые данные из файла, тогда они будут в формате String, и вам нужно будет преобразовать String в int.

Теперь перейдем к коду. Если вы хотите преобразовать число, представленное в строке, в int, вы должны использовать для этого функцию int(). Смотрите следующий пример:

Результатом следующего кода будет:

Как перевести строку в int

Преобразование функционала из другой базы

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

Но помните, что выходное целое число всегда находится в базе 10. Еще одна вещь, которую вам нужно запомнить, – это то, что данная база должна находиться в диапазоне от 2 до 36. Смотрите следующий пример, чтобы понять преобразование строки в int с аргументом base.

Результатом следующего кода будет:

Как перевести строку в intКак перевести строку в int

Исключение ValueError при преобразовании

При преобразовании строки в int вы можете получить исключение ValueError. Это исключение возникает, если строка, которую вы хотите преобразовать, не представляет никаких чисел.

Предположим, вы хотите преобразовать шестнадцатеричное число в целое. Но вы не передали аргумент base = 16 в функцию int(). Он вызовет исключение ValueError, если есть какая-либо цифра, которая не принадлежит десятичной системе счисления. Следующий пример иллюстрирует это исключение при преобразовании строки в int.

В итоге результатом приведенного выше кода будет:

Как перевести строку в int

Как преобразовать int в строку

Преобразование int в строку не требует усилий или проверки. Вы просто используете функцию str() для преобразования. Смотрите следующий пример:

Источник

string в int и обратно

Сначала я вывел стринг в инт, но мне нужно чтобы если я не хочу отвечать на очередной вопрос мог его пропустить командой, но обратно из итна в стринг он уже не хочет переходить, подскажите как правильно сделать чтобы все заработало?

Как перевести строку в int

2 ответа 2

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

Не говоря уже о том, что параметром Int32.Parse должна быть строка, а не целое.

А если пользователь действительно ввел «дальше», то первый Int32.Parse выбросит Exception и на этом все закончится.

Как перевести строку в int

Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.12.22.41046

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *