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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
10.01.2012, 18:42     Вытащить число из строки #1
Здравствуйте. Как перевести несколько символов char в int?
Например, мне надо перевести набор символов "234". Не понимаю, как можно все это превратить в строку и использовать atoi(). Помогите, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 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;
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
10.01.2012, 18:58  [ТС]     Вытащить число из строки #3
Это будет работать в C? Или только в C++?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 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;
}
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++;
            }
Не знаю, что писать вместо многоточия.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.01.2012, 19:21     Вытащить число из строки #6
djagya, число какое ? целое? с плавающей запятой? с фиксированой запятой? в массиве одно число или несколько разделенных каким либо разделителем?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2012, 08:51     Вытащить число из строки
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
djagya
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
11.01.2012, 08:51  [ТС]     Вытащить число из строки #7
Целое.

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

Добавлено через 13 часов 5 минут
Ну так как это сделать? Неужели нет универсального способа для C?
Yandex
Объявления
11.01.2012, 08:51     Вытащить число из строки
Ответ Создать тему
Опции темы

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