Массив переменных символьного типа (char) образует строку.
Существует ряд особенностей работы с массивами этого типа. Например,
инициализация строк осуществляется с помощью строковых констант:
char Str1[20];//Строка в 20 символов
char Junuary[]="Junuary
\0";//инициализация строкового массива
В отличие от других типов данных, массив
char может использоваться без указания индекса. В связи с этим массив имеет
скрытую структуру. В конце массива компилятор языка С++ иногда устанавливает
символ 0 (байт равный нулю). Например, это делает функция ввода scanf. Ноль
позволяет определять конец строки при ее использовании. Иногда 0 нужно
установить программисту. Например, при
инициализации строки.
В русском тексте строки русскоязычные.
Для введения русскоязычных строк используется функция RUS. Рассмотрим ее подробнее:
//функция поддержки русского языка в консольном приложении
char bufRus[256]; //глобальная
переменная bufRus используется
// в функции RUS
//---------------------------------------------------------------------------
char* RUS(const
char* text) //заголовок функции
{
CharToOem(text,bufRus); //тело функции
return bufRus; //
}
Особенность функции состоит в
использовании указателей. Аргумент и возвращаемое значение функции имеют тип char*, т. е. адрес строки
символов. Следовательно, можно получить адрес строки, а сама строка находится в
массиве bufRus, именно
его адрес и возвращается функцией. Поэтому можно и прямо обращаться к массиву bufRus, после того как с
помощью функции RUS его
содержимое заполнится русскоязычной строкой. Приведенная ниже программа
печатает массив bufRus
побуквенно:
char Str[21];
int i=0;//i – счетчик букв
RUS("Проверка");//Занесение русского текста в bufRus
while (bufRus[i]!='\0') //Проверка на конец
копируемого массива
{cout<<bufRus[i];i++;} //цикл побуквенной печати
|