double arrow

Внутренние коды символов


В языке С принято соглашение, что везде, где синтаксис позволяет использовать целые числа, можно использовать и символы, то есть данные типа char, которые при этом представляются числовыми значениями своих внутренних кодов. Такое соглашение позволяет сравнительно просто упорядочивать символы, обращаясь с ними как с целочисленными величинами. Например, внутренние коды десятичных цифр в таблицах кодов ASCII упорядочены по числовым значениям, поэтому несложно перебрать символы десятичных цифр в нужном порядке.

//Печать десятичных цифр и их кодов

#include "stdafx.h"

#include <stdio.h>

int main(void)

{

char z;

for (z='0'; z<='9'; z++) {

if (z=='0' || z=='5')

printf ("\n");

printf("%c - %x ",z,z);

}

system("pause");

return 0;

}

Внутренние коды прописных и строчных символов латинского алфавита представлены соответственно последовательными величинами. Однако при использовании символов кириллицы необходимо учитывать, что между строчными символами 'п' и 'р' размещены символы псевдографики, которые прерывают следование кодов. Поэтому использование стандартных функций изменения регистра для символов кириллицы может привести к некорректному результату.




Пример 6. Вывести на экран вторую часть таблицы кодировки символов (символы с кодами от 128 до 255). Таблица должна состоять из восьми колонок и шестнадцати строк.

#include "stdafx.h"

#include <stdio.h>

#define SM 128

int main(void)

{

unsigned char ch;

/*если ch объявить как char, то буквам русского алфавита

будут соответствовать отрицательные коды*/

int i,j;

printf("Таблица ASCII кодировки символов\n");

for (i=0; i<16; i++) { // шестнадцать строк

ch=i+SM;

for (j=1; j<=8; j++) { // восемь колонок

printf ("%4c -%4i",ch,ch);

ch+=16;

}

printf ("\n");

}

system("pause");

return 0;

}







Сейчас читают про: