[H-L-L.ru] |
Форма входа |
Меню сайта |
Главная » Статьи » Лекции по C++ » 9. Строки |
СтрокиМассив переменных символьного типа (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++;} //цикл побуквенной печатиИсточник: строки c++ русский текст в консоли объявление массив объявление | |
Всего комментариев: 0 | |