Как компилятор будет отличать "а" от "А" - C (СИ)

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

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

вот решил написать прогу обратную моей,что когда то писал надо из 0 и 1 переводить в текст.план есть что то вроде
while((c=getchar)!=EOF){
if(c=001)cout<<"a";
esle if(c=101)cout<<"b";

}
ну что то вроде этого,но проблема в том,как компилятор будет отличать "а" от "А" ?ведь они отличаются

Решение задачи: «Как компилятор будет отличать "а" от "А"»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
#include <limits.h>
    
/* Печать ascii символов и русских букв cp866 */
    
char *binStr(int c){
    static char buf[CHAR_BIT + 1] = {0};
    int i;
    for ( i = 0; i < CHAR_BIT; i++ )
        buf[i] = ( c & (1 << (CHAR_BIT - 1 - i)) ) ? '1' : '0';
    return buf;
}
    
int main(){
    int c;
    
    printf("%5s %-5s %-5s %s\n", "symbol", "hex", "dec", "bin");
    for ( c = 0; c <= UCHAR_MAX; c++ )
        if ( isprint(c) || (c >= 128 && c <= 159) || (c >= 160 && c <= 175) || (c >= 224 && c <= 241) )
            printf("%-6c %#-5x %-5d %s\n", c, c, c, binStr(c));
 
    return 0;
}

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

  1. Структура программы включает в себя объявление функции main(), которая является точкой входа в программу, и функцию binStr(int c), которая преобразует десятичное число в двоичное представление.
  2. В функции main() используется функция printf() для вывода таблицы с результатами. Таблица содержит столбцы symbol, hex, dec и bin.
  3. В функции main() используется цикл for, который проходит через все допустимые значения символа от 0 до 255.
  4. Условие цикла проверяет, является ли текущий символ печатаемым символом ASCII, символом кириллицы в кодировке CP866 или символом в диапазоне от 128 до 159, от 160 до 175 или от 224 до 241.
  5. Если условие истинно, то текущий символ выводится в столбцы symbol, hex, dec и bin.
  6. Функция binStr(int c) преобразует десятичное число в двоичное представление, используя побитовый оператор AND (&) и сдвиг (<<) для получения отдельных битов числа.
  7. Функция binStr(int c) использует статический массив buf для хранения двоичного представления числа.
  8. В функции main() используется функция isprint() для проверки, является ли символ печатаемым символом ASCII.
  9. В функции main() используется функция printf() для форматированного вывода таблицы с результатами.
  10. В функции main() используется цикл for, который проходит через все допустимые значения символа от 0 до 255.
  11. Условие цикла проверяет, является ли текущий символ печатаемым символом ASCII, символом кириллицы в кодировке CP866 или символом в диапазоне от 128 до 159, от 160 до 175 или от 224 до 241.
  12. Если условие истинно, то текущий символ выводится в столбцы symbol, hex, dec и bin.
  13. Функция binStr(int c) преобразует десятичное число в двоичное представление, используя побитовый оператор AND (&) и сдвиг (<<) для получения отдельных битов числа.
  14. Функция binStr(int c) использует статический массив buf для хранения двоичного представления числа.
  15. В функции main() используется функция isprint() для проверки, является ли символ печатаемым символом ASCII.
  16. В функции main() используется цикл for, который проходит через все допустимые значения символа от 0 до 255.
  17. Условие цикла проверяет, является ли текущий символ печатаемым символом ASCII, символом кириллицы в кодировке CP866 или символом в диапазоне от 128 до 159, от 160 до 175 или от 224 до 241.
  18. Если условие истинно, то текущий символ выводится в столбцы symbol, hex, dec и bin.
  19. Функция binStr(int c) преобразует десятичное число в двоичное представление, используя побитовый оператор AND (&) и сдвиг (<<) для получения отдельных битов числа.
  20. Функция binStr(int c) использует статический массив buf для хранения двоичного представления числа.

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы