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

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

Войти
Регистрация
Восстановить пароль
 
krocodil7632
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 14
#1

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

16.02.2010, 20:50. Просмотров 493. Ответов 8
Метки нет (Все метки)

Есть строка "10000111" -> в переменную int b.??????Плизззз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1235 / 773 / 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;
}
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
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
Эксперт С++
9442 / 5465 / 926
Регистрация: 25.07.2009
Сообщений: 10,487
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, но почему то программа Андрейки у меня не пашет(((
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
16.02.2010, 21:38     из строки --> Число #6
krocodil7632, у вас boost'a нету.
insideone
Модератор
Автор FAQ
3636 / 914 / 49
Регистрация: 10.01.2010
Сообщений: 2,464
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
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 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++ Перевод строки в число
C++ Преобразование строки в число
C++ Преобразование строки в число

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

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

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