Не отображаются русские символы в СИ. Вместо них появляются английские аналоги
Не отображаются русские символы в СИ. Вместо них появляются английские аналоги.
Можете сами скомпилировать если хотите. Помогите
Программа должна выводить список гласных букв, содержащихся в каждом слове, разделенном пробелом.
Но она выводит английские буквы. хотя я везде использую русские.
#pragma execution_character_set("utf-8")
#include <stdio.h>
#include <string.h>
#include <wchar.h>
void ifcharinset(wchar_t c, wchar_t* vowels, int* setvowels);
int main() {
wchar_t str[100] = L"Языки программирования";
wchar_t x[256] = { L'f', L' ', L'\0' };
wcscat(str, x);
wcscpy(x, str);
wcscpy(str, x);
wprintf(L"%ls\n", str);
wchar_t vowels[100] = { L'а', L'е', L'Ы', L'и', L'о', L'у', L'Ю', L'Я', L'э', L'Я' };
int setvowels[100] = {0};
int k = 0;
for (int i = 1; i < wcslen(str); i++) {
if (str[i] != L' ' && str[i-1] == L' ')
k++;
if (str[i] != L' ' && str[i-1] == L' ' && k > 1 ) {
for(int ii = 0; ii < wcslen(vowels); ii++) {
if (setvowels[ii] == 0)
vowels[ii] = 0;
setvowels[ii] = 0;
}
}
if (str[i] != L' ') {
ifcharinset(str[i], vowels, setvowels);
for(int ii = 0; ii < wcslen(vowels); ii++) {
if (setvowels[ii] == 1)
wprintf(L"%lc", vowels[ii]);
}
wprintf(L"\n");
}
}
for (int i = 0; i < wcslen(vowels); i++) {
if (vowels[i] != 0)
wprintf(L"%lc ", vowels[i]);
}
return 0;
}
void ifcharinset(wchar_t c, wchar_t* vowels, int* setvowels) {
for(int i = 0; i < wcslen(vowels); i++) {
if (c == vowels[i]) {
setvowels[i] = 1;
}
}
}
Источник: Stack Overflow на русском