Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ИНИЦИАЛИЗАЦИЯ СИМВОЛЬНОЙ СТРОКИ



Как вы уже знаете из урока 16, C++ позволяет вам инициализировать массивы при объявлении. Символьные строки C++ не являются исключением. Для инициализации символьной строки при объявлении укажите требуемую строку внутри двойных кавычек, как показано ниже:

char title[64] = «Учимся программировать на языке C++»;

Если количество символов, присваиваемое строке, меньше размера массива, большинство компиляторов C++ будут присваивать символы NULL остающимся элементам строкового массива. Как и в случае с массивами других типов, если вы не указываете размер массива, который инициализируете при объявлении, компилятор C++ распределит достаточно памяти для размещения указанных букв и символа NULL:

char title[] = «Учимся программировать на языке C++»;

Следующая программа INIT_STR.CPP инициализирует символьную строку при объявлении:

#include < iostream.h>

void main(void)

{
char title[64] = «Учимся программировать на языке C++»;
char lesson[64] = «Символьные строки»;
cout < < «Книга: » < < title < < endl;
cout < < «Урок: » < < lesson < < endl;
}

Некоторые программы, представленные в оставшейся части книги, будут инициализировать символьные строки подобным способом. Найдите время для эксперимента с этой программой, изменяя символы, присваиваемые каждой строке.

ПЕРЕДАЧА СТРОК В ФУНКЦИИ

Передача символьной строки в функцию подобна передаче любого массива в качестве параметра. Внутри функции вам нужно просто указать тип массива (char) и левую и правую скобки массива. Вам не надо указывать размер строки. Например, следующая программа SHOW_STR.CPP использует функцию show_ string для вывода символьной строки на экран:

#include < iostream.h>

void show_string(char string[])

{
cout < < string < < endl;
}

void main(void)

{
show_string(«Привет, C++! »);
show_string(«Учусь программировать на C++»);
}

Как видите, функция show_string трактует параметр символьной строки как массив:

void show_string(char string[])

Так как символ NULL указывает конец строки, функция не требует параметр, который задает количество элементов в массиве. Вместо этого функция может определить последний элемент, просто найдя в массиве символ NULL.

Как вы уже знаете, функции C++ часто используют символ NULL для определения конца строки. Следующая программа STR_LEN.CPP создает функцию с именем string_length, которая ищет символ NULL в строке для определения количества символов, содержащихся в строке. Далее функция использует оператор return для возврата длины строки вызвавшей функции. Программа передает несколько различных символьных строк в функцию, отображая длину каждой из них на экране:

#include < iostream.h>

int string_length(char string[])

{
int i;
for (i = 0; string[]! = ‘\0′; i++); // Ничего не делать, но перейти к
// следующему символу return(i); Длина строки
}

void main(void)

{
char title[] = «Учимся программировать на языке C++»;
char lesson[] = «Символьные строки»;
cout < < «Строка » < < title < < » содержит » < < string_length(title) < < » символов» < < endl;
cout < < «Строка » < < lesson < < » содержит » < < string_length(lesson) < < » символов» < < endl;
}

Как видите, функция запускается с первого символа строки (элемент 0) и затем исследует каждый элемент до тех пор, пока не встретит NULL. Рассматривая программы на C++, вы встретите целый ряд функций, которые подобным образом просматривают символьные строки в поисках символа NULL.

ПРЕИМУЩЕСТВА ТОГО, ЧТО NULL ПРЕДСТАВЛЯЕТ СОБОЙ ASCII 0

Как вы уже знаете, символ NULL представляет собой символ ASCII 0. В уроке 7 вы изучали, что C++ использует значение 0, чтобы представлять ложь. Таким образом, поскольку символ NULL равен 0, ваши программы могут упростить многие операции цикла. Например, многие функции просматривают символьные строки символ за символом в поиске NULL. Следующий цикл for иллюстрирует, как программа может искать NULL в строке:

for (index = 0; string[index]! = NULL; index++)

Поскольку символ NULL равен 0, многие программы упрощают циклы, которые ищут NULL, как показано ниже:

for (index = 0; string[index]; index++);

В данном случае пока символ, содержащийся в string[index] не NULL (0 или ложь), цикл продолжается.

ИСПОЛЬЗОВАНИЕ СТРОКОВЫХ ФУНКЦИЙ БИБЛИОТЕКИ ЭТАПА ВЫПОЛНЕНИЯ

Из урока 11 вы узнали, что большинство компиляторов C++ обеспечивает обширный набор функций, называемых библиотекой этапа выполнения. Рассматривая библиотеку этапа выполнения, вы обнаружите, что она содержат много разных функций, манипулирующих строками. Например, функция strupr преобразует символьную строку в строку верхнего регистра. Подобно этому, функция strlen возвращает количество символов в строке. Большинство библиотек этапа выполнения обеспечивают даже функции, которые позволяют вам просматривать строки в поисках определенного символа. Например, следующая программа STRUPR.CPP иллюстрирует использование функций strupr и strlwr библиотеки этапа выполнения:

#include < iostream.h>

#include < string.h> // Содержит прототипы
// функций strupr и strlwr

void main(void)
{
char title[] = «Учимся программировать на языке C++»;
char lesson[] = «Символьные строки»;
cout < < «Верхний регистр: » < < strupr(title) < < endl;
cout < < «Нижний регистр: » < < strlwr(lesson) < < endl;
}

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

Вы должны играть по правилам

Как вы уже знаете, большинство функций, которые манипулируют строками, полагаются на символ NULL как на конец строки. Если ваши программы присваивают строки символам, то следует убедиться, что они добавляют символ NULL в качестве последнего символа строки. Если ваши программы не используют NULL соответствующим образом, то функции, которые полагаются на символ NULL, будут сбиваться.

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

Большинство программ на C++ широко использует символьные строки. Из этого урока вы узнали, как работать со строками. Из урока 18 вы узнаете, как сохранять связанную информацию различных типов в переменных, представляющих структуры C++. Используя структуру, вы можете хранить всю информацию о служащем, например его фамилию, возраст, оклад и номер телефона, в одной переменной. Однако, прежде чем приступить к уроку 18, убедитесь, что освоили следующие основные концепции:

1. Символьная строка представляет собой массив символов, завершающийся 0 (символом NULL).

2. Вы создаете символьную строку, объявляя массив типаchar.

3. Ваша программа ответственна за размещение символа NULL за последним символом строки.

4. Если программа использует строковые константы, заключенные в

5. двойные кавычки, компилятор C++ автоматически добавляет символ NULL.

6. C++ позволяет вам инициализировать строки при объявлении, указывая требуемые символы внутри двойных кавычек.

7. Большинство компиляторов C++ в своих библиотеках этапа выполнения обеспечивают широкий набор функций для манипулирования строками.

Из урока 16 вы узнали, что C++ позволяет хранить в массиве связанную информацию одного и того же типа. Вы уже выяснили, что группировка связанных значений в массив очень удобна. В большинстве случаев программам необходимо группировать связанную информацию разного типа. Например предположим, что ваша программа работает с информацией о служащих. Она должна отслеживать данные о фамилии, возрасте, окладе, адресе, номере служащего и т. д. Для хранения этой информации программе потребуются переменные типа char, int, float, а также символьные строки.

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

  • Структуры позволяют вашим программам группировать в одной переменной связанные данные, типы которых могут различаться.
  • Структура состоит из одной или нескольких частей данных, называемых элементами.
  • Для определения структуры внутри программы следует указать имя структуры и ее элементы.
  • Каждый элемент структуры имеет тип, например char, int и float, и имя каждого элемента должно быть уникальным.
  • После того как ваша программа определит структуру, она может объявить переменные типа этой структуры.
  • Для изменения элементов структуры внутри функции ваши программы должны передать структуру в функцию с помощью адреса.

Ваше умение понимать структуры и работать с ними облегчит использование объектно-ориентированных классов C++ в части 4. Выберите время для эксперимента с программами, представленными в этом уроке.

ОБЪЯВЛЕНИЕ СТРУКТУРЫ

Структура определяет шаблон, с помощью которого ваша программа может позднее объявить одну или несколько переменных. Другими словами, ваша программа сначала определяет структуру, а затем объявляет переменные типа этой структуры. Для определения структуры ваши программы используют ключевое слово struct, за которым обычно следует имя и левая фигурная скобка. Следом за открывающей фигурной скобкой вы указываете тип и имя одного или нескольких элементов. За последним элементом вы размещаете правую закрывающую фигурную скобку. В этот момент вы можете (необязательно) объявить переменные данной структуры:

struct name

{
int member_name_l; | —————— Объявления элементов структуры
float member_name_2; } variable; |——————————————— Объявление переменной
}

Например, следующее определение создает структуру, содержащую информацию о служащем:

struct employee

{
char name [64];
long employee_id;
float salary;
char phone[10];
int office_number;
};

В данном случае определение не объявляет какие-либо переменные типа этой структуры. После того как вы определите структуру, ваша программа может объявить переменные типа этой структуры, используя имя структуры (иногда называемое структурным тэгом), как показано ниже:

——————————————————————————Тэг

employee boss, worker, new_employee; Объявление переменных

В данном случае оператор создает три переменные структуры employee. В некоторых случаях вы можете увидеть объявление, в котором тэг структуры предваряется ключевым словом struct, как показано ниже:

struct employee boss, worker, new_employee;

Ключевое слово struct является обязательным при программировании на С, так что некоторые программисты могут включать его по привычке. Однако в C++ использовать ключевое слово struct необязательно.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-30; Просмотров: 622; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.021 с.)
Главная | Случайная страница | Обратная связь