Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
eelya
0 / 0 / 0
Регистрация: 16.04.2018
Сообщений: 10
1

В символьной строке удалить все слова, содержащие две подряд идущие гласные буквы

16.04.2018, 11:13. Просмотров 1052. Ответов 1
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста напрсать программу, сам вообще ноль
Условие: В символьной строке удалить все слова, содержащие две подряд идущие гласные буквы.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2018, 11:13
Ответы с готовыми решениями:

В символьной строке оставить только те слова, в которых встречаются подряд идущие одинаковые буквы
Задача такая: В символьной строке оставить только те слова, в которых встречаются подряд идущие...

В символьной строке удалить все лишние подряд идущие пробелы
Помогите написать программу. Все изменения строки производить в том же массиве. Не допускается...

В символьной строке удалить все слова, начинающиеся с гласной буквы
Добрый день,есть задание:В символьной строке удалить все слова, начинающиеся с гласной...

В символьной строке удалить все слова, которые содержат буквы, не входящие в разрешённый набор символов
В символьной строке удалить все слова, которые содержат буквы, не входящие в разрешённый набор...

Напечатать все слова, содержащие ровно две маленькие латинские буквы
Здравствуйте, есть пример решения данной задачи: #include <stdio.h> #include <ctype.h> #define...

1
HighPredator
5958 / 2085 / 736
Регистрация: 10.12.2010
Сообщений: 5,907
Записей в блоге: 3
16.04.2018, 15:13 2
Лучший ответ Сообщение было отмечено eelya как решение

Решение

На скорую руку:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdbool.h>
 
#define isvowel(c) ((tolower(c) == 0x61) || (tolower(c) == 0x65) || (tolower(c) == 0x69) || (tolower(c) == 0x6F) || \
    (tolower(c) == 0x75) || (tolower(c) == 0x79))
 
struct Word
{
    char* start;
    size_t length;
};
 
bool IsTwoVowels(const char* word)
{
    bool wasVowelFound = false;
 
    while (*word != '\0')
    {
        if (isalpha(*word) && isvowel(*word))
        {
            if (wasVowelFound)
            {
                return true;
            }
            else
            {
                wasVowelFound = true;
            }
        }
        word++;
    }
 
    return false;
}
 
struct Word FindWordWithTwoConsecutiveVowels(const char* const s)
{
    struct Word result = {NULL, 0};
 
    size_t N = strlen(s);
 
    char* string = malloc(N);
 
    if (string != NULL)
    {
        memcpy(string, s, N);
    }
 
    char* token = strtok(string, " +=-/_,.?!:;()[]{}");
    while (token != NULL)
    {
        if (IsTwoVowels(token))
        {
            result.start = strstr(s, token);
            result.length = strlen(token);
            token = NULL;
        }
        else
        {
            token = strtok(NULL, " +=-/_,.?!:;()[]{}");
        }
    }
 
    free(string);
 
    return result;
}
 
int main(void)
{
    char s[] = "2134 this is a biig hell of a string! lux aeterna for everyone!";
 
    printf("original = '%s'\n", s);
 
    struct Word word = FindWordWithTwoConsecutiveVowels(s);
 
    while (word.start != NULL)
    {
        memmove(word.start, word.start + word.length, strlen(s) - (word.start - s) - word.length + 1);
 
        word = FindWordWithTwoConsecutiveVowels(s);
    }
 
    printf("result   = '%s'\n", s);
 
    return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2018, 15:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Строка: Вывести все слова строки, содержащие ровно две буквы d.
(язык программирования Си) ................................................. Здравствуйте!), ...

В символьной строке удалить все слова с четным номером
Помогите написать программу или примерный план написания.

Удалить в символьной строке все слова, по длине большие, чем N
задание: удалить в символьной строке все слова, по длине большие, чем N(N вводится пользователем) ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.