8 / 6 / 3
Регистрация: 14.04.2019
Сообщений: 71

Подсчитать количество слов, которые имеют нечетную длину

27.11.2019, 09:45. Показов 1458. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток! На просторах киберфорума нашел данный код, который записан ниже. Суть его в том, что он работает только с английским языком. Как его переделать под русскую/украинскую раскладку?
Само задание:
С клавиатуры вводится текстовая строка. Составить программу, которая подсчитывает количество слов, которые имеют нечетную длину; выводит на экран частоту вхождения каждой буквы; удаляет текст размещен в круглых скобках.
 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.

Вот который код у меня есть:
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>
 
 
using namespace std;
 
unsigned count_words_odd(const char* s);
void  print_repchar(FILE* _out, const char* s);
char* str_rem(char* s, char fc, char lc);
 
int main(void) {
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    char s[] = "ghb tes (тес) геп нрт";
 
    printf("Слова, що мають непарну кількість літер: %u\n", count_words_odd(s));
    print_repchar(stdout, s);
    puts(s);
    puts(str_rem(s, '(', ')'));
    return 0;
}
 
//кол-во слов, которые имеют нечетную длину
unsigned count_words_odd(const char* s) {
    unsigned i = 0, n = 0;
    do {
        if (iswalnum(*s))
            ++i;
        else if (i > 0) {
            if (i & 1)
                ++n;
            i = 0;
        }
    } while (*s++ != '\0');
    return n;
}
 
//выводит на экран частоту вхождения каждой буквы
void print_repchar(FILE* _out, const char* s) {
    int i;
    unsigned int abc[26];
 
    memset(abc, 0, sizeof(abc));
    while (*s) {
        i = toupper(*s);
        if (i >= 'A' && i <= 'Z')
            ++abc[i - 'A'];
        ++s;
    }
 
    for (i = 0; i < 26; ++i) {
        if (abc[i] > 0)
            fprintf(_out, "%C(%u)\n", (char)(i + 'A'), abc[i]);
    }
    putc('\n', _out);
}
 
//удаляет текст размещен в круглых скобках
char* str_rem(char* s, char fc, char lc) {
    char* i, * p, * t = s;
    while (*s && (*s != fc))
        ++s;
 
    for (p = s; *s; *s = *p) {
        if (*p == fc) {
            i = p + 1;
            while (*i && (*i != lc))
                ++i;
 
            if (*i == lc) {
                ++s;
                p = i;
                continue;
            }
        }
        ++s;
        ++p;
    }
    return t;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2019, 09:45
Ответы с готовыми решениями:

Подсчитать количество слов строки, которые имеют нечетную длину
С клавиатуры вводится текстовая строка. Написать программу, которая: - подсчитывает количество слов, которые имеют нечетную длину;

Подсчитать количество пар соседних элементов, которые имеют противоположные знаки
Объявить массив целых чисел и заполнить его значениями, введенных с клавиатуры. Диапазон значений его элементов заданы в Вашем варианте...

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

1
El. Psy. Congroo.
 Аватар для Mightsoul
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
27.11.2019, 10:41
C++
1
#include <locale.h>
C++
1
setlocale(LC_CTYPE,"Russian");
Добавлено через 46 минут
не забудьте про символьное ASCII-смещение, а также про размер массива abc. вряд ли вы меня поняли, поэтому вот:
C++
1
unsigned int abc[33];
C++
1
if (i >= 0xc0 && i <= 0xdf) ++abc[i - 0xc0];
C++
1
for (i = 0; i < 33; ++i) {
C++
1
fprintf(_out, "%c(%u)\n", (char)(i + 0xc0), abc[i]);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2019, 10:41
Помогаю со студенческими работами здесь

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

Указать количество слов, которые имеют хотя бы одну из звонких согласных
Дана строка, содержащая текст. Указать количество слов, которые содержат хотя бы одну букву из звонких согласных. Прога работает, но...

Массивы. Подсчитать количество пар соседних элементов, которые имеют противоположные знаки
Подсчитать количество пар соседних элементов, которые имеют противоположные знаки. размерность массива 200, диапазон значений от -50 до 50....

Удалить из массива числа, которые являются полным квадратом и имеют нечетную сумму цифр
Помогите пожалуйста разработать программу на языке программирования С++. Дан массив из N целых чисел, где N&lt;=16, каждое число в...

Удалить из массива числа, которые являются полным квадратом и имеют нечетную сумму цифр
Дан массив из N целых чисел, где N&lt;=16, каждое число в диапазоне от –32000 до 32000. Удалить из массива числа, которые являются полным...


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

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

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru