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

Ваш аккаунт

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

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

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

Поиск подстроки в предложении, выделенной определенной комбинацией символов

88K
05 июня 2013 года
Define2013
2 / / 05.06.2013
Здравствуйте! Помогите плиз,как это можно реализовать.
Допустим у нас есть строка:
Мы с мамой пошли в парк им. Горького, а потом катались там на каруселях.

Необходимо вывести слово,которое расположено между "." и "," именно в таком порядке,т.е.в промежутке между "," и "." не годится, причем оно должно всегда начинаться с большой буквы,а точки в предложении могут быть расставлены еще и в произвольных местах.Допустим так:
Мы .с Мам.Ой пош.ли в. Па.р.к Им. Горького, а Пото.м ка.тал.ись там на. кАрусе.лях.
Таким образом, в результате и там,и там будет слово "Горького".

Подскажите пожалуйста как это можно реализовать. Спасибо!
11K
06 июня 2013 года
xAtom
65 / / 17.01.2011
Код:
#include <vcl.h>
#include <locale.h>
#include <stdio.h>
#include <ctype.h>
wchar_t* strbetw(const wchar_t* s, const wchar_t*& e);



int main(int argc, char* argv[])
{
        setlocale(LC_ALL, "Russia");

        wchar_t s[] = L"Мы .с Мам.Ой пош.ли в. Па.р.к Им. Горького,"\
                       L" а Пото.м ка.тал.ись там на. кАрусе.лях.";

        WideString str;

        const wchar_t* a, *b;
        a = strbetw(s, b);
        if(a != NULL) {
                // сохраняем слово
                str = WideString(a, b - a);
                _putws(str.c_bstr());

                //выводим в консоль
                while(a != b)
                        wprintf(L"%lc", *a++);
        }

        getchar();
        return 0;
}


wchar_t* strbetw(const wchar_t* s, const wchar_t*& e) {
    const wchar_t* p, *t;
    for(p = NULL; *s; ++s) {
        if(*s == L'.')
            p = s;
        else if((*s == L',') && p) {
            for(++p; (*p) && (! iswalpha(*p));++p);
            if(iswupper(*p)) {
                for(t = p; *t && iswalpha(*t); ++t);
                e = t;
                return (wchar_t*)p;
            }
            p = NULL;
        }
    }
    return NULL;
}
88K
07 июня 2013 года
Define2013
2 / / 05.06.2013
Большое спасибо! Однако,есть некоторые проблемы - во-первых это консольный вариант,а необходимо работать с визуальной средой - полями мемо,т.е. пользователь сам вводит текст,а ему выдается результат,нельзя написать эту конкретную фразу - это пример.
341
07 июня 2013 года
Der Meister
874 / / 21.12.2007
Цитата: Define2013
Большое спасибо! Однако,есть некоторые проблемы - во-первых это консольный вариант,а необходимо работать с визуальной средой - полями мемо,т.е. пользователь сам вводит текст,а ему выдается результат,нельзя написать эту конкретную фразу - это пример.

Вы просили подсказать, а в итоге хотите, чтобы всё сделали за вас. Не слишком ли жирно?

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

Ваш ответ

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