Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/41: Рейтинг темы: голосов - 41, средняя оценка - 4.78
1 / 1 / 2
Регистрация: 16.12.2011
Сообщений: 47

выбрать из string числа

06.02.2012, 21:25. Показов 8330. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите плс как из string равной допустим "123ghj42"
вытащить числа и засунуть их в int переменную?
что то вроде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
  {
  string str;
  cin>>str;
  int i=0;
  while(str[i]!='\0')
  {
      if((atoi(str[i].c_str())<=9)&&(atoi(str[i].c_str()))>=0)  //но это выдает ошибку
          int x+=str[i]; //а потом както так :D
  }
  system("pause");
  return 0;
  }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2012, 21:25
Ответы с готовыми решениями:

Выбрать уникальные значения. Выбрать числа которые есть в обоих массивах
Всем доброго времени суток! Ребята , у меня есть 2 массива , они заполняются рандомными числами , подскажите что нужно сделать для того ,...

Нельзя преобразовать тип Tuple<string,string,string,string> к string
Здравствуйте, у меня возникла проблема. При запуске кода, вылезает ошибка &quot;Нельзя преобразовать тип...

Выбрать из List<string> только одно поле
List &lt;string&gt; &quot;{ LeagueName = AFC - Champions League Corners, Id = 9596 }&quot; выбрать только поле Id помогите pls не получается создать...

11
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
06.02.2012, 21:36
2e1553ce, так?
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <string>
 
int main()
{
   std::string s("123ghj42");
   
   std::cout << std::stoi(s) << std::endl;
}
http://liveworkspace.org/code/... 6720532acc
2
 Аватар для ШКІПЕР
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
06.02.2012, 21:39
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
 
inline void operator<<(const string &s, int &i)
{
    istringstream ss(s);
    ss >> i;
}
 
int main()
{
  string str;
  string buf;
  getline(cin,str);
  for (int i=0; i<str.size();++i)
      if (str[i]>='0' && str[i]<='9')
          buf.push_back(str[i]);
 
  int a;
  buf<<a;
 
  cout<<a;
  
  system("pause");
  return EXIT_SUCCESS;
}
Добавлено через 49 секунд
Вариант "аля танцы с бубном".

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
бубен квадратный
Ну все-таки танцует :)

2
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
06.02.2012, 21:42
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>
#include <cctype>
 
int main()
{
    std::string s("142hello32"), tmp;
    std::istringstream iss(s);
    char c;
    
    while (iss >> c)
    {
        if (std::isdigit(c))
        {
            iss.putback(c);
            int a;
            iss >> a;
            std::cout << a << '\n';
        }
    }
}

Не по теме:

Цитата Сообщение от ШКІПЕР Посмотреть сообщение
Вариант "аля танцы с бубном".
бубен квадратный:)

3
 Аватар для x1Mike7x
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
06.02.2012, 21:48
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <cstring>
 
int main()
{
    std::string S = "2e1553ce";
    int X = 0;
    for ( int i = 0; i < S.size(); ++i )
    {
        if ( isdigit( S[ i ] ) )
            X = X * 10 + S[ i ] - 48;
        else if ( i && isdigit( S[ i - 1 ] ) )
        {
            std::cout << X << std::endl;
            X = 0;
        }
    }
    if ( isdigit( S.size() - 1 ) )
        std::cout << X << std::endl;
}
http://ideone.com/7eWRH
2
1 / 1 / 2
Регистрация: 16.12.2011
Сообщений: 47
06.02.2012, 22:05  [ТС]
Подскажите еще что делает c_str()?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
06.02.2012, 22:06
Цитата Сообщение от 2e1553ce Посмотреть сообщение
Подскажите еще что делает c_str()?
http://cplusplus.com/reference... ing/c_str/
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
06.02.2012, 22:08
Цитата Сообщение от 2e1553ce Посмотреть сообщение
Подскажите еще что делает c_str()?
Возвращает указатель const char* на строку в объекте типа string.
0
 Аватар для x1Mike7x
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
06.02.2012, 22:17
*facepalm*
В моем коде 19 строка должна быть так:
C++
1
if ( isdigit( S[ S.size() - 1 ] ) )
0
1 / 1 / 2
Регистрация: 16.12.2011
Сообщений: 47
06.02.2012, 22:26  [ТС]
thanks
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,974
07.02.2012, 00:12
Мы простых путей не ищем!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <limits.h>
 
int main(void){
    char buf[BUFSIZ], * pHead, * pTail;
    long num;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        printf("Numbers:\n");
        for ( pHead = buf; *pHead; ){
            errno = 0;
            num = strtol(pHead, &pTail, 10);
            if ( ! errno ){
                printf("%ld\n", num);
            }
            else {
                if ( num == LONG_MIN || num == LONG_MAX ){
                    fprintf(stderr, "Number is too long!\n");
                    break;
                }
            }
            if ( ! *pTail )
                break;
            pHead = pTail + 1;
        }
        printf("\n");
    }
    
    return 0;
}
0
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3416 / 396
Регистрация: 15.06.2009
Сообщений: 5,817
07.02.2012, 03:52
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <strstream>
#include <iomanip>
using namespace std;
 
int main()
{
    istrstream  instr( "124abc35zxd" );
    strstream   outstr;
    char c;
 
        // копировать строку, заменяя нецифровые символы пробелами
    while( !instr.eof() )
    {
        instr >> c;
 
        if( isdigit(c) )
        {
            outstr << c;
        }
        else
        {
            outstr << ' ';
        }
    }
        // разобрать строку на числа, убирая пробелы
    int num;
 
    while( !outstr.eof() )
    {
        outstr >> num >> ws;
 
        cout << num << endl;
    }
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2012, 03:52
Помогаю со студенческими работами здесь

Господа, нужно выбрать double-архив из строки string(С++/С)
Есть строка формата: string str=&quot;R 7.2 531.804 119.479 0.477472 175.792 7.22212 -64.2461 0 79.5401 -0.600769 ...

Даны 3 действительных числа. Выбрать те числа, которые принадлежат заданному интервалу
1. Даны 3 действительных числа. Выбрать те числа, которые принадлежат интервалу (1;3) На каждый вопрос создавайте по одной теме - это...

Даны целые числа A, B. Выбрать из отрезка [A,B] все нечетные положительные числа и составить из них массив
Помогите разобраться, не могу понять как считать размер массива. Даны целые числа A, B. Выбрать из отрезка все нечетные положительные...

Выбрать два числа b и c из массива таким образом, чтобы числа a,b,c могли быть длиннами сторон треугольника.
Пусть даны вещественное число a и массив вещественных чисел Q. Выбрать два числа b и c из массива таким образом, чтобы числа a,b,c могли...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Здравствуйте! По C# есть задачка, с которой я так и не разобрался :( Задача: Создайте класс Animal. Добавьте поля string...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru