Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
#1

Конвертация строки в число - C++

29.06.2011, 15:57. Просмотров 404. Ответов 12
Метки нет (Все метки)

библиотека string, присваиваю целой переменной элемент строки, а он присваивает кодировку, тобишь если элемент строки '0' то переменная равна 48. Как сделать так чтобы она равнялась 0.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2011, 15:57     Конвертация строки в число
Посмотрите здесь:

Конвертация строки в число - C++
Стыдно конечно, но вот уже пол года изучаю с++ и только сейчас заметил что при данном коде #include <windows.h> #include <iostream> ...

Конвертация строки в число: реализовать сложение чисел - C++
Привет Форумчане. В общем есть файл который мы успешно открыли в нем находятся в каждой строке по какому то числу, например: 0.64, а так...

Конвертация строки в массив символов - C++
Что тут не так?( getTextFromFile - считывает с файла сроку. Как переконвертировать строку что бы можно было установить в EDIT? string tmp...

Конвертация wchar_t в число целого типа. Обработка исключения - C++
Конвертирую считываемые данные с Экселя в число типа int,для дальнейшей проверки вхождения в массив. buff содержит значение 12345qwe ...

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

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

из строки --> Число - C++
Есть строка "10000111" -> в переменную int b.??????Плизззз

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
29.06.2011, 15:59     Конвертация строки в число #2
C++
1
2
std::string str("120");
int x = str[2] - '0';
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
29.06.2011, 18:50  [ТС]     Конвертация строки в число #3
Цитата Сообщение от diagon Посмотреть сообщение
C++
1
2
std::string str("120");
int x = str[2] - '0';
с нулем был просто пример, у меня уже есть строка в которой число, как мне это число закинуть в интовскую переменную. Я просто присваивал:
C++
1
2
3
4
5
int a=0;
for (int i=0; i<n; i++)
{
   a=a*10+s1[i];
}
nameless
Эксперт C++
333 / 297 / 14
Регистрация: 16.06.2009
Сообщений: 486
29.06.2011, 18:54     Конвертация строки в число #4
fenix117, Не совсем Вас понял, вы хотите строку преобразовать в число?
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.06.2011, 18:59     Конвертация строки в число #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <sstream>
 
int main() 
{
   std::string str("120");
   std::stringstream ss(str);
   int i;
   ss >> i;
   std::cout << str << '\n' << i;
   return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <boost\lexical_cast.hpp>
 
int main() 
{
   std::string str("120");
   int i = boost::lexical_cast<int>(str);
   std::cout << str << '\n' << i;
   return 0;
}
nameless
Эксперт C++
333 / 297 / 14
Регистрация: 16.06.2009
Сообщений: 486
29.06.2011, 19:05     Конвертация строки в число #6
fenix117,

C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   int num = atoi("120");
   
   printf("%d", num);
   
   return 0;
}
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
29.06.2011, 19:12  [ТС]     Конвертация строки в число #7
да, строку надо в число преобразовать, но теперь я мало что понял, слабо разбираюсь в программировании, я подключал только #include <iostream>
#include <string> можно только ими обойтись?
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
29.06.2011, 19:13     Конвертация строки в число #8
Можно, но придется писать свою реализацию atoi
Не проще ли воспользоватся стандартными функциями?
Вариант с самодельной atoi:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <sstream>
int atoi(std::string buf){
    int res = 0;
    for (size_t i = 0; i <  buf.size(); ++i){
        res *= 10;
        res += buf[i] - '0';
    }
    return res;
}
    
int main(){
    std::string buf("123450");
    int x = atoi(buf);
    std::cout << x;
    return 0;
}
nameless
Эксперт C++
333 / 297 / 14
Регистрация: 16.06.2009
Сообщений: 486
29.06.2011, 19:14     Конвертация строки в число #9
fenix117,
Думаю мой вариант и вариант товарища Maxwe11 вполне должны подойти..
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
29.06.2011, 19:48  [ТС]     Конвертация строки в число #10
спасибо вам, вся фишка была только в вычитании нуля (-'0'), только не пойму почему это помогло, если транслятор встречает эту запись то присваивает символ иначе ее кодировку чтоли?
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
29.06.2011, 19:50     Конвертация строки в число #11
Цитата Сообщение от fenix117 Посмотреть сообщение
спасибо вам, вся фишка была только в вычитании нуля (-'0'), только не пойму почему это помогло, если транслятор встречает эту запись то присваивает символ иначе ее кодировку чтоли?
char - это тоже число.
http://asciitable.com/
Т.е. '0' = 48.
Поэтому, к примеру '2' - '0' = 50 - 48 = 2.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.06.2011, 19:58     Конвертация строки в число #12
Цитата Сообщение от diagon Посмотреть сообщение
Вариант с самодельной atoi
Может тогда лучше вообще строковые потоки юзать и не париться?))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2011, 20:02     Конвертация строки в число
Еще ссылки по теме:

Из строки в число - C++
Как можно преобразовать строку с цифрами в число отдельной функцией, не используя atoi, но пользуясь стандартными библиотеками?

Перевод из строки в число - C++
Каким способом можно перевести строчку типа &quot;System::String ^&quot; в тип double?

Преобразование строки в число - C++
Имеется переменная строкового типа string. У нее такой формат: 1561 1 6.87208 4.52665 0.10226 2.16762 Нужно написать такую функцию,...

Преобразование строки в число - C++
задача : реализовать деление двух целых чисел, передаваемых функции в виде строк Всем добрый вечер. Прошу ваших советов и подсказок....

Двоичное число + строки - C++
Определить является ли введенная с клавиатуры строка двоичным числом? Не могу понять как реализовать, помогите плиз..


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
29.06.2011, 20:02     Конвертация строки в число #13
Цитата Сообщение от silent_1991 Посмотреть сообщение
Может тогда лучше вообще строковые потоки юзать и не париться?))
Проще, но автору, как я понял, нужно только с помощью <iostream> && <string>
Yandex
Объявления
29.06.2011, 20:02     Конвертация строки в число
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru