Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как выделить числа из строки ?

85K
27 октября 2012 года
f_z_l
2 / / 27.10.2012
Как выделять из строки , содержащей пробелы и другие символы , числа и записывать их поочерёдно в массив ?
76K
27 октября 2012 года
kuy
6 / / 21.11.2011
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char *str="54dgdf5 6hgf1 0hgjgh96 ryre57yt6t";
    int mas[50];
    int n=0;
    for (int i=0; str[i]!='\0'; i++)
    {
        if ((str[i]>='0')&&(str[i]<='9'))
        {
            mas[n]=str[i]-'0';
            n++;
        };
    };
    printf("mas:");
    for (int i=0;i<n;i++)
    {
        printf(" %d",mas[i]);
    };
    cout<<'\n';
    system("pause");
    return 0;
}
85K
27 октября 2012 года
f_z_l
2 / / 27.10.2012
Мне нужны числа , а не все подряд цифры . Например : "99+56-987*5" требуемый массив (99,56,987,5) .
70K
27 октября 2012 года
ProkletyiPirat
76 / / 25.07.2012
читаем строку *str и из неё выписываем в другую строку mas[20] подряд идущие цифры
как только появилась нецифра преобразуем строку в число функцией atoi(*str) и полученный результат записываем в int-переменную

atoi
37K
29 октября 2012 года
freets
97 / / 15.10.2010
Используй регулярные выражения.
Массив совпадений и будет результирующим массивом.
341
31 октября 2012 года
Der Meister
874 / / 21.12.2007
Код:
#include <iostream>
#include <string>
#include <vector>
#include <iterator>

using namespace std;

void get_numbers(vector<int> & result, const string & s) {
    bool found = false;
    int number = 0;

    for (string::size_type i = 0; i < s.length(); i++) {
        const char ch = s[i];
        if (ch >= '0' && ch <= '9') {
            const int digit = ch - '0';
            number = number*10 + digit;
            found = true;
        }
        else {
            if (found) {
                result.push_back(number);
               
                number = 0;
                found = false;
            }
        }
    }

    if (found) {
        result.push_back(number);
    }
}

int main() {
    vector<int> numbers;
    get_numbers(numbers, "54dgdf5 6hgf1 0hgjgh96 ryre57yt6t");

    copy(numbers.begin(), numbers.end(), ostream_iterator<int>(cout, "\n"));
}

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог