Как в c преобразовать string в int
Нередко может возникнуть необходимость объединить строку с данными других типов, например, числами. Однако объединить строку мы можем только с другой строкой. Поэтому данные других типов вначале необходимо преобразовать в строку. Для преобразования в строку применяется функция 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
Перевод string в integer
Спасибо, все работает. Долго ломал голову и гуглил. А можешь пару коментов дать к параметрам функции этой?
2 мая 2011 в 20:29
ВНИМАНИЕ. Способ устарел, сейчас (2018) лучше использовать stoi.
24 сен 2018 в 21:44
И чтобы не надо было вчитываться в документацию, замечу, stoi использует strtol со всеми ее фичами
24 сен 2018 в 23:08
#include #include #include using namespace std; int main () < string S = "74"; istringstream iss (S, istringstream::in); int val; iss >> val; return 0; >
Отслеживать
ответ дан 2 мая 2011 в 17:35
1,905 13 13 серебряных знаков 16 16 бронзовых знаков
#include #include using namespace std; void main() < string str = "1234567890"; int num = NULL; for (int i = 0; i < str.length(); i++)< num = num*10 + str[i] - 0x30; >cout
Отслеживать
ответ дан 8 дек 2016 в 16:10
21 3 3 бронзовых знака
int num = NULL; .
8 дек 2016 в 16:12
оно работать будет, но да, выглядит дико. Но точка с запятой после include — это интересно.
8 дек 2016 в 16:14
сделай так, если страшно: int num = 0;
8 дек 2016 в 16:26
можно написать по всякому, но лучше писать так, как принято. Но в 2016 году лучше использовать std::stoi.
8 дек 2016 в 16:40
это сильно просто:
8 дек 2016 в 16:54
using namespace std; void main()
Отслеживать
ответ дан 10 янв 2022 в 19:31
Vasyl Androshchook Vasyl Androshchook
11 2 2 бронзовых знака
В текущем виде ваш ответ непонятен. Пожалуйста, нажмите править под сообщением, чтобы добавить больше подробностей, которые помогут другим понять, как он отвечает на заданный вопрос. Вы можете найти больше информации о том, как писать хорошие ответы в Справке.
10 янв 2022 в 19:33
добро пожаловать на stack overflow на русском! пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав править
Как преобразовать string в int?
Так не получается. Раньше, кажется, как-то преобразовывал, а как — не помню.
Добавлено через 21 минуту 53 секунды
Всё, понял, как надо:
string s = "5"; int i = Convert.ToInt32(s);
Извиняюсь за беспокойство !
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как преобразовать в базе из int в string
Добрый день.Такая проблемма.Тут ругается на файл в кейсе на цифру 1 типо преобразовать в string.
Как преобразовать string в int?
Как преобразовать string в int? Задача такая: в реестре записывается счётчик открытия программы, и.
Как правильно преобразовать string в int[]?
Такой вот маневр не проходит, а подходящих конверторов не знаю int mass =.
Как преобразовать int в string в выводе на консоль?
Чтобы вывести value. static void Method(out int i, out string s1, out string s2) < .
Преобразовать строку в int в C++
В этом посте мы обсудим, как преобразовать строку в int в C++.
1. Использование std::stoi функция
Стандартный подход заключается в использовании std::stoi функция преобразования строки в целое число. stoi функция была введена в C++11 и определена в заголовке . Он бросает std::invalid_argument или же std::out_of_range исключение при неправильном вводе или целочисленном переполнении соответственно. Стоит отметить, что он будет преобразовывать такие строки, как 10xyz в целое число 10 .