Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Есть строка "10000111" -> в переменную int b.??????Плизззз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2010, 20:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос из строки --> Число (C++):

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

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

Массив: Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки, и число таких строк. - C++
Дана матрица А(m,n). Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки,...

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. - C++
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. ...

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

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

8
Genius Ignat
1238 / 776 / 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;
}
1
Андрейка
421 / 225 / 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;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9917 / 5840 / 976
Регистрация: 25.07.2009
Сообщений: 11,014
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);
}
1
krocodil7632
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 14
16.02.2010, 21:19  [ТС] #5
Вообще нужно со string, но почему то программа Андрейки у меня не пашет(((
0
Андрейка
421 / 225 / 27
Регистрация: 25.03.2009
Сообщений: 744
16.02.2010, 21:38 #6
krocodil7632, у вас boost'a нету.
1
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,487
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 в эту "выделенную" ячейку мы и запишем новую букву... ну и так до конца строки
1
ISergey
Maniac
Эксперт С++
1397 / 908 / 56
Регистрация: 02.01.2009
Сообщений: 2,714
Записей в блоге: 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;
}
2
krocodil7632
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 14
16.02.2010, 23:38  [ТС] #9
Всем большое спасибо!!! Очень выручили))
0
16.02.2010, 23:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2010, 23:38
Привет! Вот еще темы с ответами:

Преобразование строки в число - C++
Почему не работает функция StrToInt, хоть библиотеку подключил stdlib.h

Вытащить число из строки - C++
Здравствуйте. Как перевести несколько символов char в int? Например, мне надо перевести набор символов &quot;234&quot;. Не понимаю, как можно все...

Элемент строки в число - C++
Есть строка типа string с данными &quot;число1 число2&quot;, как перевести число2 в int? atoi, stoi не подходят.

Перевод строки в число - C++
У меня по заданию нужно в строку ввести числа через пробелы а потом убрать пробелы и перевести из строки в число мои цифры. #include...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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