@elnur181096

Как вывести все слова, в которых 2-ая буква будет «n»?

Есть программа, которая выводит только те слова, в которых 2-ая по счёту буква является "n". Как сделать так, чтобы данная программа работала с русским алфавитом?

#include <stdio.h>
#include <ctype.h>
 
#define N 5
 
int main() {
    char word[N + 1] = { 0 };
    int ch = 0, len = 0, pos = 0;
 
    while ((ch != '\n') && (ch != EOF)) {
        ch = getchar();
        if (isalpha(ch)) {
            if (len < N) {
                word[len] = ch;
            }
            len++;
            if ((ch == 'n') && (pos == 0)) {
                pos = len;
            }
        }
        else {
            if ((len == N) && (pos == 2)) {
                printf("%s, ", word);
            }
            len = pos = 0;
        }
    }
 
    return 0;
}
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
@luaPower
Два варианта решения проблемы:
  1. Применить одинаковые однобайтовые русскоязычные кодировки как для текста программы, так и для входящих данных. Например, KOI8-R или CP-1251.
  2. Применить UTF-8 в качестве кодировки по умолчанию, использовав при этом какую-нибудь соответствующую библиотеку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы