Программирование на языке С++. Работа со строками. Функции библиотеки algorithm

Содержание

Слайд 2

План занятия Работа со строками Функции библиотеки algorithm

План занятия

Работа со строками
Функции библиотеки algorithm

Слайд 3

Зачем нужны символьные строки? char s[10]; // массив символов элементы массива

Зачем нужны символьные строки?

char s[10]; // массив символов

элементы массива – отдельные

объекты
сложно работать со строками переменной длины

Хочется:
строка – единый объект
длина строки может меняться во время работы программы

string s; // символьная строка

строка

Слайд 4

Символьные строки Начальное значение: string s = "Привет!"; Вывод на экран: cout s = "Привет!"; Присваивание:

Символьные строки

Начальное значение:

string s = "Привет!";

Вывод на экран:

cout << s;

s =

"Привет!";

Присваивание:

Слайд 5

Символьные строки Ввод с клавиатуры: cin >> s; Отдельный символ: s[4]

Символьные строки

Ввод с клавиатуры:

cin >> s;

Отдельный символ:

s[4] = 'a';

Длина строки:

только до

пробела!

getline ( cin, s );

до перевода строки (Enter)

int n;
...
n = s.size();

метод для объектов типа string

Слайд 6

Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в

Задачи

«B»: Ввести с клавиатуры символьную строку и определить, сколько в ней

слов. Словом считается последовательности непробельных символов, отделенная с двух сторон пробелами (или стоящая с краю строки). Слова могут быть разделены несколькими пробелами, в начале и в конце строки тоже могут быть пробелы.
Пример:
Введите строку:
Вася пошел гулять
Найдено слов: 3
Слайд 7

s = "0123456789"; s1 = s.substr( 3 ); // "3456789" Операции

s = "0123456789";
s1 = s.substr( 3 ); // "3456789"

Операции со строками

Объединение

(конкатенация):

string s, s1, s2;
s1 = "Привет";
s2 = "Вася";
s = s1 + ", " + s2 + "!";

"Привет, Вася!"

Срез (подстрока):

s = "0123456789";
s1 = s.substr( 3, 5 ); // "34567"

с какого символа

откуда

5

Слайд 8

Операции со строками Вставка: s = "0123456789"; s.insert( 3,"ABC" ); //

Операции со строками

Вставка:

s = "0123456789";
s.insert( 3,"ABC" ); // "012ABC3456789"

что

куда

с какого символа

Удаление:

s

= "0123456789";
s.erase ( 3, 6 ); // "0129"

с какого символа

сколько символов

Слайд 9

Поиск символа в строке string s = "Здесь был Вася."; int

Поиск символа в строке

string s = "Здесь был Вася.";
int n;
n =

s.find ( 'с' ); // 3

find – искать

if ( n >= 0 )
cout << "Номер символа 'c': "
<< n << endl;
else cout << "Символ не найден.\n";

Слайд 10

Задачи «A»: Ввести с клавиатуры в одну строку фамилию, имя и

Задачи

«A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество,

разделив их пробелом. Вывести фамилию и инициалы.
Пример:
Введите фамилию, имя и отчество:
Иванов Петр Семёнович
П.С. Иванов
Слайд 11

Задачи «B»: Ввести адрес файла и «разобрать» его на части, разделенные

Задачи

«B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком

'/'. Каждую часть вывести в отдельной строке.
Пример:
Введите адрес файла:
C:/Фото/2013/Поход/vasya.jpg
C:
Фото
2013
Поход
vasya.jpg