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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
#1

Вытащить число из строки - C++

10.01.2012, 18:42. Просмотров 2610. Ответов 6
Метки нет (Все метки)

Здравствуйте. Как перевести несколько символов char в int?
Например, мне надо перевести набор символов "234". Не понимаю, как можно все это превратить в строку и использовать atoi(). Помогите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 18:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вытащить число из строки (C++):

вытащить числа из строки - C++
имеется строка формата (%d,%d)(%d,%d)(%d,%d)(%d,%d)... которая вводится пользователем с клавиатуры. как извлечь из нее эти числа?

Как вытащить из строки значение? - C++
Есть строка такого вида: подстроки типа "request=3" и "action=11" разделены табуляциями. Как мне получить значение "11" из...

Си-шные строки, как вытащить подстроку - C++
Есть ли для строк типа char*, wchar_t* стандартная функция, которая вытаскивает подстроку, как в классе string.substring(int pos, int...

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

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

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

6
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.01.2012, 18:47 #2
C++
1
2
3
4
5
6
#include <sstream>
//...
std::string str("234");
std::stringstream ss(str);
int value;
ss >> value;
0
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
10.01.2012, 18:58  [ТС] #3
Это будет работать в C? Или только в C++?
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.01.2012, 19:04 #4
только в С++, для Си так
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(void)
{
    const char str[] = "234";
    int value;
    sscanf(str, "%d", &value);
    printf("%d", value);
    return 0;
}
0
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
10.01.2012, 19:17  [ТС] #5
А если я передаю набор символов как параметр в функцию?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float intpr_post(char txt[100])
{  
    int i=0;
    while (i < strlen(txt)) 
    {
        if (isdigit(txt[i])) 
        {
            char *t = new char[1];
            t[0]=txt[i];
                i++;
                        stack[mm] = atoi(t);
            mm++;
        }
                i++;
        }
}
В txt находится выражение какое-либо со всякими знаками арифметическими и числами.
Так делал, когда по одному символу вынимал. Догадываюсь, что код корявый, но практических знаний не хватило для правильного кода.
Но теперь нужно вынимать число.

C
1
2
3
4
5
6
7
8
9
10
if (isdigit(txt[i])) 
            {
                while (isdigit(txt[i]))
                { 
                                     ...
                                     i++;
                }
                stack[mm] =  //Число, которое мы получаем, считывая строку
                mm++;
            }
Не знаю, что писать вместо многоточия.
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.01.2012, 19:21 #6
djagya, число какое ? целое? с плавающей запятой? с фиксированой запятой? в массиве одно число или несколько разделенных каким либо разделителем?
0
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
11.01.2012, 08:51  [ТС] #7
Целое.

Добавлено через 23 минуты
В массиве несколько чисел, разделенных арифметическими знаками: + - * /.

Добавлено через 13 часов 5 минут
Ну так как это сделать? Неужели нет универсального способа для C?
0
11.01.2012, 08:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2012, 08:51
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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