[H-L-L.ru]

Форма входа

Меню сайта

Categories
1. Основы работы в среде C++ Builder.Основы языка Си++ [9]
2. Операторы ветвления и операторы передачи управления [4]
3. Операторы цикла и операторы передачи управления [5]
4. Одномерные массивы [3]
5. Многомерные массивы [3]
6. Указатели.Динамическое распределение памяти [6]
7. Отладка программы [3]
8. Функции [8]
9. Строки [5]
10. Функция Main [2]
11. Типы данных,определяемые пользователем [5]
12. Потоки ввода/вывода [7]
13. Основы объектно-ориентированного программирования [5]
Приложения [11]

Главная » Статьи » Лекции по C++ » 9. Строки

1. Строки

Строки

Массив переменных символьного типа (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
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Полная версия сайта