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

Работа со строками (определение строк-рифм)

16.04.2017, 14:46. Просмотров 847. Ответов 1
Метки нет (Все метки)

Задание следующие. Написать программу, которая будет определять слова-рифмы и выводить их. Слова рифмы - слова, у которых окончания идентичны. Определить, похожи ли окончания не составляет труда. Но, как прочитать строку? То есть нужно подойти к тому, чтобы можно было сравнивать окончания у двух строк. Но как? Может быть занести слова в новый массив? Буду благодарен любым советам!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2017, 14:46
Ответы с готовыми решениями:

Сравнение строк, введенных с клавиатуры со строками файла
char* x=strstr(op,' '); x++; if(strcmp(x,buf)==NULL){ ...

Работа со строками
Дана последовательность слов, каждое слово не более 8 символов, заканчивается...

Работа со строками
Дана строка S. Вывести строку , содержащую теже символы строки S, межлу...

Работа со строками
Дан текст 1)Подчитать количество слов начинающихся с большой буквы....

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

1
Venok1234
0 / 0 / 1
Регистрация: 14.03.2017
Сообщений: 25
25.04.2017, 08:36  [ТС] 2
Лучший ответ Сообщение было отмечено Venok1234 как решение

Решение

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
#include <iostream>
#include <string.h>
 
void main()
{
    setlocale(0, "Russian");
 
    /* Массив слов. 12 - количество слов, 64 - максимальная длина одного элемента массива. */
    char arr[12][64] = { "Дома", "Раскаты", "Халаты", "Ответы", "Сегодня", "Хорошо", "Нехорошо", "Земля", "Лампа", "Сердце", "Ельце", "Блок" };
 
    printf("Массив слов для рифм: \n");
    for (int i = 0; i < _countof(arr); i++)
        printf("%s ", arr[i]);
    printf("\n\n");
 
    printf("Производим поиск рифм...\n");
    for (int i = 0; i < _countof(arr); i++)
    {
        char* firstWord;
 
        /* Если данное слово уже было срифмовано, то пропустить. */
        if (arr[i][0] == '\0')
            continue;
 
        /* Берем слово и перемещаемся в его конец. */
        firstWord = strchr(arr[i], '\0');
        /* Перемещаемся на три символа влево от конца слова, чтобы сравнить окончания с другими словами и найти рифму. */
        firstWord -= 2;
 
        for (int j = 0; j < _countof(arr); j++)
        {
            /* Если идёт сравнение с самим собой, то пропускаем. */
            if (j == i)
                continue;
            
            char* secondWord = strchr(arr[j], '\0');
            secondWord -= 2;
 
            /* Сравнить окончания двух слов. Если результат функции stricmp равен 0, то окончания совпали и слова необходимо вывести в консоль. */
            if (!_stricmp(firstWord, secondWord))
            {
                printf("%s - %s\n", arr[i], arr[j]);
 
                /* "Убрать" из массива пару слов, которая образует рифму, чтобы избежать вывода дубликатов. */
                arr[i][0] = '\0';
                arr[j][0] = '\0';
 
                /* Выйти из текущего цикла и начать поиск пар слов сначала. */
                break;
            }
        }
    }
 
    system("pause");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2017, 08:36

Работа со строками в Си!
Ввести с клавиатуры символьную строку длиной не более 80 символов,...

Работа со строками
Помогите с программой. Не могу запустить элементарную вещь. Есть команда char...

Работа со строками и подстрокой в C
Программа, которая запрашивает 3 строки: 1 базовую, 2 - что мы ищем а базовой,...


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

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

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