Работа в VS Code. Macbook M1. Ввод текста с русскими буквами

Вот в чем проблема: программирую в Visual Studio Code на MacBook M1. Что происходит в моем коде: я считываю текстовый файл для дальнейшей работы с ним. Предотвращая ваш вопрос, я использую calloc, потому что файл с текстом будет довольно большим. Далее я хочу сделать частотный анализ каждой буквы моего текста. Начинаю считать количество повторений каждой буквы и вот! что-то не так. Я думаю, что компилятор не различает буквы, потому что, когда я прошу вывести кол-во повторений хотя бы одной буквы, выводится количество всех символов в тексте. Подключала библиотеки и тд. Точно сделала что-то не так. Пожалуйста, помогите! Не злитесь, пожалуйста, если вам покажется этот код уродливым, я новичок!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <locale.h>
#include <stdlib.h> 
#include <ctype.h>


//частотный анализ

void chastota(char str[], int len) {

    char alphabet[] = { "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" };
    
    unsigned long long int count[33] = {0};
    unsigned long long vstrecha = 0;


    for (int i = 0; i < 33; i++) {
        for (int j = 0; j < len; j++) {
            if (alphabet[i] == str[j]) { 
                vstrecha++;
            }
            count[i] = vstrecha;
        }
        vstrecha = 0;
    }
    printf("%llu", count[0]); // хочу понять, сколько раз встретилась буква "А" и получаю ответ: 18, хотя в тексте она встречается 3 раза

  

}


int main() {
        setlocale(LC_ALL, "ru");
        unsigned long long len = 0;
        
        FILE* f;
        f = fopen("tex.txt", "r");
        char p = 1;
        while (fscanf(f, "%c", &p) != EOF) {   //мы хотим знать сколько символов
            len++;
        }
        fclose(f);

        char* str = (char*)calloc(len + 2, sizeof(char)); //выделяем память для строки
        f = fopen("tex.txt", "r");
        while (!feof(f)) {
            if (fgets(str, len, f) != NULL) {
                printf("%s\n", str);
            }
        }
        chastota(str, len);
        fclose(f);
        free(str);
        

    return 0;
}

Ответы (0 шт):