#include
#include
2
using namespace std;
int main()
{
string Greetings ("Hello std::string!");
8 cout « Greetings « endl;
9
cout « "Enter a line of text: " « endl;
string FirstLine;
getline(cin, FirstLine);
13
cout « "Enter another: " « endl;
string SecLine;
getline(cin, SecLine);
17
cout « "Result of concatenation: " « endl;
string Concat = FirstLine + " " + SecLine;
cout « Concat « endl;
21
cout « "Copy of concatenated string: " « endl;
string Copy;
Copy = Concat;
ЗАНЯТИЕ 4. Массивы и строки
cout « Сору « endl;
26:
cout « "Length of concat string: " « Concat.length() « endl;
return 0;
}
Результат
Hello std::string!
Enter a line of text:
I love
Enter another:
C++ strings
Result of concatenation:
I love C++ strings
Copy of concatenated string:
I love C++ strings
Length of concat string: 18
Анализ
Старайтесь понять вывод и связать его с соответствующими элементами в коде. Не беспокойтесь пока о новых синтаксических средствах. Программа начинается с отображе ния инициализированной в строке 7 строки H e llo s t d : : s t r i n g !. Затем, в строках 12 и 16, она просит пользователя ввести две строки текста, которые сохраняются в переменных F i r s t L i n e и S e c L in e . Фактически конкатенация очень проста и выглядит как арифме тическая сумма в строке 19, где даже пробел был добавлен к первой строке. Действие копирования — это простое присвоение в строке 24. Определение длины строки осущест вляется при вызове метода le n g th () в строке 27.
ПРИМЕЧАНИЕ
|
Для использования строк C++ в код необходимо включить заголовок string:
|
|
|
#include
|
|
Это можно заметить в строке 1 листинга 4.7.
|
Чтобы подробней изучить различные функции класса s t d : : s t r i n g , обратитесь к за нятию 16, “Классы строк библиотеки STL”. Поскольку вы еще не изучали классы и ша блоны, игнорируйте пока соответствующие разделы и уделите внимание сути примеров.
Резюме
На этом занятии вы познакомились с основами массивов и способами их применения. Вы научились объявлять и инициализировать их элементы, получать доступ к значениям элементов массива и записывать их. Вы узнали, как важно не выходить за границы масси ва. Это называется переполнением буфера (buffer overflow), и проверка ввода перед его ис пользованием для индексации элементов позволяет гарантировать нахождение в пределах массива без их пересечения.
Динамические массивы позволяют программисту не волноваться об установке макси мальной длины массива во время компиляции, а также обеспечивают лучшее управление памятью в случае, если размер массива меньше ожидаемого максимума.
Вы также узнали, что строки в стиле С — это частный случай символьного массива, где конец строки отмечается нулевым завершающим символом 1\0 ’. Кроме того, вы узна ли, что язык C++ обеспечивает намного лучшую возможность — класс s t d : : s t r i n g , — предоставляющий удобные вспомогательные функции и позволяющий определить длину строк, объединять их и выполнять подобные действия.
Do'stlaringiz bilan baham: |