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

Программа для поиска в тексте номеров телефона - C++

Восстановить пароль Регистрация
 
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
15.01.2014, 01:22     Программа для поиска в тексте номеров телефона #1
Пожалуйста дорогие и умные программисты, помогите юзверю написать программу на C++:

ввести с клавиатуры последовательность символов, найти в тексте номера телефонов и вывести их.

Задача не из сложных, помогите пожалуйста, а то выгонят с универа.( пожалуйста! прошу!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 01:22     Программа для поиска в тексте номеров телефона
Посмотрите здесь:

Нужна программа для поиска слова в тексте. с++ C++
Программа для поиска минимального значения функции C++
упорядочить выбранную информацию по возврастанию номеров телефона, а затем записать в файл C++
Составить программу поиска номеров всех элементов массива, больших чем предыдущие. C++
Программа для посчета частоты появления символа в тексте C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
15.01.2014, 01:38     Программа для поиска в тексте номеров телефона #2
а как, собственно, распознать номер телефона в тексте? можно хотя бы пример этого самого текста?

Добавлено через 13 минут
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <cstring>
#include <vector>
 
int main()
{
    std::string string = "Hello, my name is Sasha.\n"\
        "My telephone number is 050-123-45-67.";
    std::copy(string.begin(), string.end(), std::ostream_iterator <char> (std::cout));
 
    std::vector <size_t> vector;
    for (size_t i = 0; i < string.length(); i++) {
        if (isdigit(string.at(i)))
            vector.push_back(string.at(i) - '0');
    }
    std::cout << std::endl << "Your number: ";
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <int> (std::cout));
    std::cout << std::endl;
 
    std::system("pause");
    return 0;
}
school_bot
14 / 12 / 3
Регистрация: 23.12.2013
Сообщений: 84
15.01.2014, 02:27     Программа для поиска в тексте номеров телефона #3
если номера телефонов отделены от простых символов пробелами, как вариант, а вы знаете общий стиль, как эти номера телефонов выглядят, то вам помогут регулярные выражения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string str;
cin >> str;
string regExp = " \+[0-9]+ "; // как вариант распознавания
for (int i = 0; i < strlen(str); ++i) {
    if (str[i] == " " && str[i + 1] == "+") {
        string str1;
        for (int j = i + 2; j < strlen(str); ++j) {
            if (str[j] == " ") {
                i = j - 1;
                strcpy(str1, str, j - i);
            }
        }
    if (match(str1, regExp)) {
        cout << str1;
    }
}
Тут match() распознает строку на соответствие регулярному выражению. Её можно реализовать с помощью конечного автомата, как вариант.
Не стоит забывать при реализации о крайних вариантах (начало, конец строки).
Но общую идею в моем коде уловить можно (писал не чтобы скопировать, а чтоб донести идею, поэтому не стоит бездумно копипастить)
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
15.01.2014, 02:50  [ТС]     Программа для поиска в тексте номеров телефона #4
Спасибо большое!...!!!
Тема закрыта.
Yandex
Объявления
15.01.2014, 02:50     Программа для поиска в тексте номеров телефона
Ответ Создать тему
Опции темы

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