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

Выделить в строке s1 все слова,начинающиеся с гласной буквы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Dmitry9494
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 20
11.05.2013, 10:41     Выделить в строке s1 все слова,начинающиеся с гласной буквы #1
5)Примечание:
СЛОВО-это группа символов не содержащих пробелов
ПРЕДЛОЖЕНИЕ-это совокупность слов,разделенных пробелом и заканчивающаяся точкой
ТЕКСТ-группа предложений
сама задача 5):
Выделить в строке s1 все слова,начинающиеся с гласной буквы,а в строке s2-все слова,начинающиеся с согласной буквы.Образовать строку s3,состоящую из выделенных слов обеих строк
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2013, 10:41     Выделить в строке s1 все слова,начинающиеся с гласной буквы
Посмотрите здесь:

Вывести слова, начинающиеся с гласной буквы C++
Вывести все слова начинающиеся с заданной буквы. C++
Считать текст из файла и вывести на экран все слова текста, начинающиеся с гласной буквы C++
Программа удаляет все слова начинающиеся со строчной буквы (пояснить код) C++
В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
18.05.2013, 15:08     Выделить в строке s1 все слова,начинающиеся с гласной буквы #2
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
#include <iostream>
#include <cstring>
char* forming(char *s, char* s3, const char* letters)
{
    char s1[256] = {0};
    strcpy(s1, s);
    char* ptr = 0;
    for (int i=0; i<strlen(s1); ++i)
        if (isalpha(s1[i]))
        {
            char buff[2] = {0};
            buff[0] = s1[i];
            int size = 0;
            while(s1[i] != ' ' && i <=strlen(s1))
                ++size, ++i;
            if (strstr(letters, buff))
            {
                strncat(s3, s1 + i - size, size);
                strcat(s3, " ");
            }
            --i;
        }
    return s3;
}
 
int main()
{
    char s1[] = "    sdf a  adad jkhj asdad ";
    char s2[] = "a ksyukhu myu dasd ad ad asdad ";
    char s3[256] = {0};
    forming(s1, s3, "aeiouy");
    forming(s2, s3, "bcdfghjklmnpqrstvwxz");
    std::cout << s3 <<'\n';
}
Dmitry9494
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 20
30.05.2013, 17:03  [ТС]     Выделить в строке s1 все слова,начинающиеся с гласной буквы #3
можешь прокомментировать
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.05.2013, 17:29     Выделить в строке s1 все слова,начинающиеся с гласной буквы #4
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
#include <iostream>
#include <cstring>
char* forming(char *s, char* s3, const char* letters)
{   // в letters содержатся все либо гласные, либо согласные буквы
    char s1[256] = {0};
    strcpy(s1, s);
    char* ptr = 0;
    for (int i=0; i<strlen(s1); ++i) // проход по строке
        if (isalpha(s1[i])) // если текущий символ - буква
        {
            char buff[2] = {0}; // временной массив, содержит первую букву слова 
            buff[0] = s1[i];
            int size = 0;
            while(s1[i] != ' ' && i <=strlen(s1)) // выделяем слово (ищем пробел)
                ++size, ++i; // считаем длину слова
            if (strstr(letters, buff)) // если первая буква слова содержится в letters
            {
                strncat(s3, s1 + i - size, size); // формируем строку из таких слов
                strcat(s3, " "); //прибавляем к строке пробел для разделения слов
            }
            --i; // возвращаемся на позицию назад (к началу следующего слова)
        }
    return s3; // возвращаем сформированную строку
}
 
int main()
{
    char s1[] = "    sdf a  adad jkhj asdad ";
    char s2[] = "a ksyukhu myu dasd ad ad asdad ";
    char s3[256] = {0};
    forming(s1, s3, "aeiouy"); // выделение слов, начинающихся с гласной буквы
    forming(s2, s3, "bcdfghjklmnpqrstvwxz"); // с согласной буквы
    std::cout << s3 <<'\n';
}
Yandex
Объявления
30.05.2013, 17:29     Выделить в строке s1 все слова,начинающиеся с гласной буквы
Ответ Создать тему
Опции темы

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