Сравнение русских символов не работает - C (СИ)
Формулировка задачи:
сейчас делаю черновик для более большой программы, но не получается различать введенные символы на русском с введённой строкой. Такая вещь, как эта setlocale(LC_ALL, "RUS"); помогает только выводить уже забитые строки в коде.
Сам перевод этих символов получается(в введённой строке ( char str[64] ) после перевода висят символы), но они не те. Возможно, что не ту таблицу взял, посоветуте, кто знает)
#include <conio.h> #include <stdio.h> #include <string.h> #include <locale.h> char *trans(char *str) //оператор для перевода символов в русский { int i = 0; while(str[i]!='\0') { switch(str[i]) { case 128: str[i] = 'А'; break; case 129: str[i] = 'Б'; break; case 130: str[i] = 'В'; break; case 131: str[i] = 'Г'; break; case 132: str[i] = 'Д'; break; case 133: str[i] = 'Е'; break; case 134: str[i] = 'Ж'; break; case 135: str[i] = 'З'; break; case 136: str[i] = 'И'; break; case 137: str[i] = 'Й'; break; case 138: str[i] = 'К'; break; case 139: str[i] = 'Л'; break; case 140: str[i] = 'М'; break; case 141: str[i] = 'Н'; break; case 142: str[i] = 'О'; break; case 143: str[i] = 'П'; break; case 144: str[i] = 'Р'; break; case 145: str[i] = 'С'; break; case 146: str[i] = 'Т'; break; case 147: str[i] = 'У'; break; case 148: str[i] = 'Ф'; break; case 149: str[i] = 'Х'; break; case 150: str[i] = 'Ц'; break; case 151: str[i] = 'Ч'; break; case 152: str[i] = 'Ш'; break; case 153: str[i] = 'Щ'; break; case 154: str[i] = 'Ъ'; break; case 155: str[i] = 'Ы'; break; case 156: str[i] = 'Ь'; break; case 157: str[i] = 'Э'; break; case 158: str[i] = 'Ю'; break; case 159: str[i] = 'Я'; break; case 224: str[i] = 'а'; break; case 161: str[i] = 'б'; break; case 162: str[i] = 'в'; break; case 163: str[i] = 'г'; break; case 228: str[i] = 'д'; break; case 165: str[i] = 'е'; break; case 166: str[i] = 'ж'; break; case 167: str[i] = 'з'; break; case 168: str[i] = 'и'; break; case 169: str[i] = 'й'; break; case 170: str[i] = 'к'; break; case 171: str[i] = 'л'; break; case 172: str[i] = 'м'; break; case 173: str[i] = 'н'; break; case 174: str[i] = 'о'; break; case 175: str[i] = 'п'; break; case 224: str[i] = 'р'; break; case 225: str[i] = 'с'; break; case 226: str[i] = 'т'; break; case 227: str[i] = 'у'; break; case 228: str[i] = 'ф'; break; case 229: str[i] = 'х'; break; case 230: str[i] = 'ц'; break; case 231: str[i] = 'ч'; break; case 232: str[i] = 'ш'; break; case 233: str[i] = 'щ'; break; case 234: str[i] = 'ъ'; break; case 235: str[i] = 'ы'; break; case 236: str[i] = 'ь'; break; case 237: str[i] = 'э'; break; case 238: str[i] = 'ю'; break; case 239: str[i] = 'я'; break; } i++; } return str; } int main(void) { setlocale(LC_ALL, "RUS"); char str[64]; puts("вы новичок?"); for(int i=0;;i++) { gets(str); trans(str); if(strcmp(str, "да") == 0) { puts("ololo"); } else puts(str); } getch(); return 0; }
Решение задачи: «Сравнение русских символов не работает»
textual
Листинг программы
SetConsoleCP(1251); SetConsoleOutputCP(1251);
Объяснение кода листинга программы
SetConsoleCP(1251);
- Установка кодовой страницы консоли в Windows на UTF-8.SetConsoleOutputCP(1251);
- Установка кодовой страницы вывода консоли в Windows на UTF-8.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д