0 / 0 / 0
Регистрация: 17.06.2018
Сообщений: 18
1

Освоение методики работы с символьными строками

19.06.2018, 13:21. Показов 1099. Ответов 3
Метки нет (Все метки)

Определить минимальную длину слова;
выдать на печать все слова начинающиеся с гласной буквы;
заменить на ps первое вхождение х, если такое имеется;
удалить из всех слов первую букву;
проверить , есть ли в указанном слове согласные буквы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2018, 13:21
Ответы с готовыми решениями:

Библиотеки работы с символьными строками
Как будет выглядеть данный код, если не использовать библиотек работы с символьными строками? В...

Работа с символьными строками
Надо на Borlande настрочить,кто может помогите:Дано строку.Сформировать строку, которыя бы содержал...

Работа с символьными строками
Очередной простенький вопрос для знатоков)) Есть символьная строка. Можно ли как-то не в цикле...

Работа с символьными строками
Начал проходить новую тему про символьные строки. Первым идет описание строковой переменной String....

3
0 / 0 / 0
Регистрация: 17.06.2018
Сообщений: 18
19.06.2018, 13:22  [ТС] 2
Определить количество симметричных слов четной длины;
выдать на печать последовательность слов в обратном порядке;
определить есть ли повторяющиеся слова в тексте;
выдать на печать те слова, перед которыми в последовательности находятся только меньшие по алфавиту слова, а за ними только большие;
удалить из слова все повторные вхождения заданной буквы.
0
837 / 640 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
19.06.2018, 15:19 3
Цитата Сообщение от nero123 Посмотреть сообщение
Определить минимальную длину слова;
выдать на печать все слова начинающиеся с гласной буквы;
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
#include <stdio.h>
#include <string.h>
int  min_len_word(const char* s);
void output_words(FILE* _out, const char* s);
 
int main(void){
    char s[] = "APL, PASCAL, ACTOR, PERL, ALGOL, GO, OBERON, ADA, LISP, ASM";
 
    printf("min word: %d\n", min_len_word(s));
    output_words(stdout, s);
    getchar();
    return 0;
}
 
//минимальная длинна слова
int min_len_word(const char* s){
    const char delim[] = " \t\n,.!?";
    int i, n = 0;
    for(i = 0; *s; s += i){
        s += strspn(s, delim);
        i  = (int)strcspn(s, delim);
        if(!n || (i > 0) && (i < n))
            n = i;
    }
    return n;
}
 
//выдать на печать все слова начинающиеся с гласной буквы
void output_words(FILE* _out, const char* s){
    const char vs[] = "AaEeOoIiYyUu";
    const char ds[] = " \t\n,.!?";
    size_t i;
    for(i = 0; *s; s += i){
        s += strspn(s, ds);
        i  = strcspn(s, ds);
        if((i > 0) && (strchr(vs, *s) != NULL))
            fprintf(_out, "%.*s\n", (int)i, s);
    }
}
0
837 / 640 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
19.06.2018, 15:50 4
Лучший ответ Сообщение было отмечено nero123 как решение

Решение

Цитата Сообщение от nero123 Посмотреть сообщение
Определить количество симметричных слов четной длины;
определить есть ли повторяющиеся слова в тексте;
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
#include <stdio.h>
#include <string.h>
static const char* get_token(const char** s, const char* delim, size_t* n);
static int s_equal(const char* a, const char* b, const char* s);
int count_words(const char* s);
int is_rep_words(const char* s);
 
int main(void){
    char s[] = "XzzX, ADA, XYZ, ZoVVoZ, xyz, kook, XYZ, ADA, QOOQ";
 
    printf("count words: %d\n", count_words(s));
 
    //определить есть ли повторяющиеся слова в тексте
    if(is_rep_words(s))
        puts("Yes!");
    else
        puts("No!");
    getchar();
    return 0;
}
 
//количество симметричных слов четной длины
int count_words(const char* s){
    size_t i;
    const char* p, *a, *b;
    const char delim[] = " \t\n,.!?";
    int k = 0;
 
    while((p = get_token(&s, delim, &i)) != NULL){
        if(i & 1)
            continue;
 
        a = p;
        b = p + (i - 1);
        while((a < b) && (*a == *b)){
            ++a;
            --b;
        }
 
        if(a >= b)
            ++k;
    }
    return k;
}
 
//определить есть ли повторяющиеся слова в тексте
int is_rep_words(const char* s){
    size_t n, m;
    const char* p, *i, *w;
    const char delim[] = " \t\n,.!?";
 
    while((p = get_token(&s, delim, &n)) != NULL){
        i = p + n;
        while((w = get_token(&i, delim, &m)) != NULL){
            if((m == n) && s_equal(w, w + m, p))
                return 1;
        }
    }
    return 0;
}
 
//сравнение
static int s_equal(const char* a, const char* b, const char* s){
    while((a != b) && (*a == *s)){
        ++a;
        ++s;
    }
    return (a == b);
}
 
//получение токена
static const char* get_token(const char** s, const char* delim, size_t* n){
    size_t i;
    const char* p = *s;
 
    p += strspn(p, delim);
    if(!*p)
        return NULL;
 
    i  = strcspn(p, delim);
    *s = p + i;
    *n = i;
    return p;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2018, 15:50
Помогаю со студенческими работами здесь

Робота из символьными строками
За індивідуальним завданням створити функцію для обробки символьних рядків. За зразок брати...

Пролема с символьными строками
Народ помогите пожалуйста с задачей: 1.Массив элементы которого являются символьными строками...

Работа с символьными строками
Помогите пожалуйста с задачкой Дан текст. Если в тексте нет символа *, то оставить этот текст без...

Работа с символьными строками
С клавиатуры ввести символьную строку, которая задает арифметическое выражение: А ± В, где А и В -...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru