C как конвертировать string в long
Перейти к содержимому

C как конвертировать string в long

  • автор:

C как конвертировать string в long

// convert string → float
float value = Convert.ToSingle(«234»);

// convert string → double
double value = Convert.ToDouble(«234»);

// convert string → short
short value = Convert.ToInt16(«234»);

// convert string → int
int value = Convert.ToInt32(«234»);

// convert string → long
long value = Convert.ToInt64(«234»);

// convert string → ushort
ushort value = Convert.ToUInt16(«234»);

// convert string → uint
uint value = Convert.ToUInt32(«234»);

// convert string → ulong
ulong value = Convert.ToUInt64(«234»);

На заметку! При ииспользовании Convert желательно использоввать конструкцию try и catch .
То есть в случае ошибки конвертации мы обработаем исключение.

try
<
int value = Convert.ToInt32( «234» );
>
catch (FormatException e)
<
Console .WriteLine( «Input string is not a sequence of digits.» );
>
catch (OverflowException e)
<
Console .WriteLine( «The number cannot fit in int.» );
>
catch (Exception e)
<
Console .WriteLine(e.Message);
>

← Предыдущая тема
Память. Сборщик мусора (garbage collector). Автоматическое освобождение памяти В C#

Следующая тема →
C# конвертация числа в строку (int, double, short, . → string) с требуемой точностью

C как конвертировать string в long

Нередко может возникнуть необходимость объединить строку с данными других типов, например, числами. Однако объединить строку мы можем только с другой строкой. Поэтому данные других типов вначале необходимо преобразовать в строку. Для преобразования в строку применяется функция std:to_string() , в которую передается преобразуемое значение:

#include #include int main() < unsigned age; std::string message< "Age: " + std::to_string(age)>; std::cout 

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

Нередко может вощникнуть противиположная задача — преобразовать строку в другой тип. Есть ряд функций, которые преобразуют строку в число определенного типа:

  • stoi() : преобразует в тип int
  • stol() : в long
  • stoll() : в long long
  • stoul() : в unsigned long
  • stoull() : в unsigned long long
  • stof() : в float
  • stod() : в double
  • stold() : в long double

Все они определены в модуле , работают однотипно и в качестве параметра принимают преобразуемую строку:

std::string str< "123" >; int n< std::stoi(str) >; // n == 123

Преобразование строки в указатель на символы

При необходимости можно преобразовать значение типа string в указатель на символы. Для преобразования в указатель на константную строку применяется метод c_str() :

#include #include int main() < std::string message ; const char* message_ptr = message.c_str(); // преобразуем в указатель std::cout

Для получения указателя также можно применять метод data() , который возвращает указатель на неконстантное значение, если объект string не является константой.

#include #include int main() < std::string message ; char* message_ptr = message.data(); // преобразуем в указатель std::cout

Преобразовать строку в int в C++

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

1. Использование std::stoi функция

Стандартный подход заключается в использовании std::stoi функция преобразования строки в целое число. stoi функция была введена в C++11 и определена в заголовке . Он бросает std::invalid_argument или же std::out_of_range исключение при неправильном вводе или целочисленном переполнении соответственно. Стоит отметить, что он будет преобразовывать такие строки, как 10xyz в целое число 10 .

std :: string s = «10» ;
int i = std :: stoi ( s ) ;
std :: cout << i << std :: endl ; catch ( std :: invalid_argument const &e ) < std :: cout << "Bad input: std::invalid_argument thrown" << std :: endl ; catch ( std :: out_of_range const &e ) < std :: cout << "Integer overflow: std::out_of_range thrown" << std :: endl ;

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

std::stringstream можно использовать для преобразования std::string к другим типам данных и наоборот. Это страдает от той же проблемы, что и std::stoi сделал, т. е. он будет преобразовывать строки, подобные 10xyz в целое число 10 . Он возвращается INT_MAX или же INT_MIN если преобразованное значение находится вне диапазона целочисленного типа данных. Если значение строки не может быть представлено как int, возвращается 0.

std :: string s = «10» ;
std :: istringstream ( s ) >> i ;
std :: cout << i << std :: endl ;

3. Использование boost::lexical_cast

Другой хорошей альтернативой является использование boost::lexical_cast . Он бросает boost::bad_lexical_cast исключение, когда не может быть построено допустимое целое число или происходит переполнение.

std :: string s = «10» ;
i = boost :: lexical_cast < int >( s ) ;
std :: cout << i << std :: endl ; catch ( boost :: bad_lexical_cast const &e ) < // неверный ввод std :: cout << "error" << std :: endl ;

4. Использование std::atoi функция

Мы также можем использовать std::atoi функция для преобразования строки в int. Он принимает C-строку в качестве параметра, поэтому нам нужно преобразовать нашу строку в C-строку. Мы можем сделать это, используя std::string::c_str .

Обратите внимание, что его поведение не определено, если преобразованное значение выходит за пределы диапазона целочисленного типа данных. Если значение строки не может быть представлено как int, возвращается 0.

Как преобразовать string в long java

Для преобразования строки в тип long в Java можно использовать метод Long.parseLong() . Он принимает строку и возвращает соответствующее ей значение типа long:

String str = "123456789"; long num = Long.parseLong(str); 

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

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