Поиск кириллицы в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Приветствую. Есть вот такая задачка:
Скопировать текстовый файл в новый файл, перенести в него только те строки, в которых встречаются русские буквы, и указав после каждой строки количество русских букв в ней.
Так и не разобрался, как из строки считать не-ASCII символы целиком, а не по байтам:
#include <stdio.h>
 
void main() {
    FILE *file = fopen("../test.txt", "r");
    int sym = 0;
 
    while (!feof(file)) {
        sym = getc(file);
        printf("%d\n", sym);
    }
}
Выводит:
113
10
208
166
10
-1
Результат, в принципе, ожидаемый. Собственно, сам файл:
$ cat test.txt 
q
Ц
Как тут с многобайтовыми строками работать?

Решение задачи: «Поиск кириллицы в строке»

textual
Листинг программы
#include <stdio.h>
 
int main(void) {
    FILE *file = fopen("../test.txt", "r");
    int sym = 0;
 
    while ((sym=getc(file))!=EOF) {
        
        printf("%d\n", sym);
    }
    return 0;
}

Объяснение кода листинга программы

В этом коде открывается файл ../test.txt для чтения, и считывается каждая символьная запись в цикле, пока не достигнут конец файла (EOF). Затем каждая символьная запись выводится на консоль с помощью функции printf(). Переменная sym используется для хранения текущей символьно-кодовой единицы. В конце программы возвращается 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы