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

из строки --> Число - C++

Восстановить пароль Регистрация
 
krocodil7632
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 14
16.02.2010, 20:50     из строки --> Число #1
Есть строка "10000111" -> в переменную int b.??????Плизззз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.02.2010, 20:54     из строки --> Число #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
 
int main(){
char str[] = "10000111";
int b = atoi(str);
printf("b= %d",b);
printf("\n");
 
 
 
getch();
return 0;
}
Андрейка
409 / 213 / 23
Регистрация: 25.03.2009
Сообщений: 716
16.02.2010, 20:56     из строки --> Число #3
krocodil7632,
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
 
int main()
{
    std::string str = "101";
    int number =  boost::lexical_cast <int> (str);
    std::cout << number << std::endl;
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.02.2010, 21:06     из строки --> Число #4
Цитата Сообщение от krocodil7632 Посмотреть сообщение
Есть строка "10000111"
Сдаётся мне, что это число в двоичном формате, а не в десятичном
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    char *binstr = "10000111";
    long num;
    
    num = strtol(binstr, NULL, 2);
    printf("Bin: %s\tDec: %ld\n", binstr, num);
    
    exit(0);
}
krocodil7632
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 14
16.02.2010, 21:19  [ТС]     из строки --> Число #5
Вообще нужно со string, но почему то программа Андрейки у меня не пашет(((
Андрейка
409 / 213 / 23
Регистрация: 25.03.2009
Сообщений: 716
16.02.2010, 21:38     из строки --> Число #6
krocodil7632, у вас boost'a нету.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,427
16.02.2010, 22:48     из строки --> Число #7
C++
1
2
3
4
5
6
7
8
    int res = 0;
    std::string str = "1001";
    for (int i = str.length()-1; i > -1; i--)
    {
        res = res << 1;
        res = res | (str[i]-'0');
    }
    std::cout << res;
Идем от последней буквы к первой, (str[i]-'0') возвращает 0 если в строке эта буква была '0' ... и 1 если '1'. res = res | просто записывает в последний бит то что мы получили. Чтобы записать следующую букву не поверх мы смещаем res = res << 1;... т.е допустим уже было записано 111 а после << будет 1110 в эту "выделенную" ячейку мы и запишем новую букву... ну и так до конца строки
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
16.02.2010, 22:59     из строки --> Число #8
Цитата Сообщение от Андрейка Посмотреть сообщение
krocodil7632, у вас boost'a нету.
Долго свой велосипед "lexical_cast" написать...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <sstream>
#include <string>
 
template <typename T, typename U>
T lexical_cast(const U &rhs){
    std::stringstream ss;
    ss << rhs;
    T res; ss >> res;
    return res;
}
 
 
int main(){
    std::string str = "123";
    int x = lexical_cast<int>(str);
    std::cout << x << std::endl;
 
    x = lexical_cast<int>("1001");
    std::cout << x << std::endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2010, 23:38     из строки --> Число
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
krocodil7632
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 14
16.02.2010, 23:38  [ТС]     из строки --> Число #9
Всем большое спасибо!!! Очень выручили))
Yandex
Объявления
16.02.2010, 23:38     из строки --> Число
Ответ Создать тему
Опции темы

Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru