// ================================================================ //
//
ПРОГРАММА ИСПРАВЛЕНИЯ ОШИБОК ФИРМЫ "Microsoft",
//
//
ПРОЯВЛЯЮЩИХСЯ ПРИ ВЫВОДЕ В КОНСОЛЬНОЕ ОКНО
//
//
ТЕКСТА РУССКОГО АЛФАВИТА
//
// ------------------------- Консольное приложение ------------------------- //
// Среда проектирования: C++Builder 5, автор: ..........,
группа: .... //
// Проект: russ_con.bpr,
модуль: russ_con.cpp, дата: 22.12.2001 //
// ========================================================================= //
#include <conio.h>
#include <stdio.h>
#include <string.h>
struct New {
char C[ 80 ];
} F;
// =========================================================================
// ** Функция поправки скан-кодов символов выводимой строки
void RussingPatriot( char *RussStr )
{
int i = 0;
// Цикл вывода символов строки
while( RussStr[ i ] != '\0' )
{
// Если символ не принадлежит русскому алфивиту,
if( RussStr[ i ] > 0 && RussStr[ i ] < 128 ) // то вывести его на экран без поправки,
printf( "%c", RussStr[ i ] );
else // иначе - проверить его на входимость в зону разрыва (коды псевдографики)
if( RussStr[ i ] >= 'А' && RussStr[ i ] < 'р' )
printf( "%c", RussStr[ i ] + 'А' ); // если не входит, то коэффициент
else
// поправки - скан-код первой буквы алфавита,
printf( "%c", RussStr[ i ] + 'р' );
// иначе - скан-код буквы, следующей за кодами
i++;
// псевдографики
}
}
void main( void )
{
int i, j;
char C[ 2 ],
*R = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя";
RussingPatriot( "Чему равны скан-коды русских букв?\n\n " );
i = 0;
j = 0;
while( R[ i ] != '\0' )
{
C[ 0 ] = R[ i ];
C[ 1 ] = '\0';
RussingPatriot( C );
printf( "=%i, ", R[ i++ ] );
if( j == 10 )
{
printf( "\n " );
j = 0;
}
else j++;
}
RussingPatriot( "\n\nА что мы имеем на самом деле в скан-таблице Microsoft DOS?\n\n " );
j = 0;
for( i = -64; i < 0; i++ )
{
printf( "%i=%c, ", i, i );
if( j == 10 )
{
printf( "\n " );
j = 0;
}
else j++;
}
RussingPatriot( "\n\nТак давайте же введем поправку указателя таблицы и " );
RussingPatriot( "узнаем,\nкакой же всетаки у пиджака цвет:\n" );
strcpy( F.C, "
Пиджак черный" );
RussingPatriot( F.C );
RussingPatriot( "\n\nНажмите любую клавишу..." );
getch();
}
// ==========================================================================
Приложение