Вот мой код. Вначале кода я проверяю какому числу соответствует каждая буква русского алфавита. Выходят числа от -32 до -1 для а...я и от -64 до -33 для А...Я. После хочу с этим работать и выходит ошибка. Проверяю в конце кода какому числу соответствуют те же буквы и там уже, например, для а -95, для б -94 и тд.
#include <stdio.h>
#include <string.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "RUS");
char alp[100] = "абвгдеёжзийклмнопрстуфхцчшщъыьюэя";
char alp1[100] = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
//for (int i = 0; i < 33; i++){
//printf("%c - %d\n", alp[i], (int)(alp[i]));
//}
char str[100];
gets(str);
for (int i = 0; i < strlen(str); i++)
{
if((int)(str[i]) > -32 && (int)(str[i]) < -1)
{
str[i] = (char)((int)(str[i]) - 32);
}
}
puts(str);
printf("%d", (int)(str[0]));
}
int main() { setlocale(LC_ALL, "RUS"); char alp[100] = "абвгдеёжзийклмнопрстуфхцчшщъыьюэя"; for (int i = 0; i < 33; i++){ printf("%c - %d\n", alp[i], (int)(alp[i])); } char str[100]; gets(str); puts(str); printf("%d", (int)(str[0])); }` вот код. при вводе символ б, выводится -95, хотя только что числу б соответствовало -31
– Kyteraade Oct 14 '23 at 19:28alpсначала одни коды, потом другие. А сравнивать мягкое с теплым... Разные кодировки, что вы хотите... – Harry Oct 14 '23 at 19:51б, пишет в файл байт со значением-31. Когда вы вводите в консоли символб, она отправляет в поток ввода вашей программы байт со значением-95. Так сложилось исторически. – wololo Oct 14 '23 at 20:10