Не могу найти ошибку в программе - C (СИ)

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

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

Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные. Проблема со строчными, выдает совершенно не те символы. ( Укажите на ошибку, пожалуйста.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("Введите строку \n");
    char str[200];
    gets(str);
int i;
    for ( i=0; str[i] != '\0';i++)
    {
        if (65<=(int)(str[i])<=90)
        str[i]=(char)((int)(str[i]+32));
        else if ( 97<=(int)(str[i])<=122)
        str[i]=(char)((int)(str[i]-32));
        else if (128<=(int)(str[i])<=143)
        str[i]=(char)((int)(str[i]+32));
        else if (144<=(int)(str[i])<=159)
        str[i]=(char)((int)(str[i]+80));
        else if (160<=(int) (str[i])<=175)
        str[i]=(char)((int)(str[i]-32));
        else if (224<=(int) (str[i])<=239)
        str[i]=(char)((int)(str[i]-80));
 
    }
    puts(str);
 
    return 0;
}

Решение задачи: «Не могу найти ошибку в программе»

textual
Листинг программы
// Я бы сделал так
int diff = 'б' - 'Б';
if(c <= 'а' && c >='я')
  c = c -diff;

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

В данном коде выполняется следующие действия:

  1. Создается переменная diff типа int, которая вычисляется как разница между символами 'б' и 'Б'. Это приводит к тому, что diff становится равным 1.
  2. С помощью условного оператора if проверяется, является ли значение переменной c меньше или равным 'а' и больше или равно 'я'. Если это условие истинно, то выполняется следующее действие.
  3. Значение переменной c приводится к типу int и вычитается из него значение переменной diff. Это приводит к тому, что значение переменной c становится равным 'а'. Таким образом, данный код преобразует значение переменной c в 'а', если оно находится в диапазоне от 'а' до 'я', и вычитает из него разницу между 'б' и 'Б'.

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


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

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

10   голосов , оценка 3.7 из 5