Строки
Строка в C++ представляет собой особый класс. Класс, в терминах программирования, это элемент, описывающий абстрактный тип данных. Это означает, что для строки определены особые функции - методы.
Чтобы пользоваться строками, необходимо подключить заголовочный файл
Объявление строк схоже с объявлением переменной.
Строка также представляет собой массив символов. Значит, чтобы получить конкретный символ, можно использовать следующее:
Этот код выведет третий символ строки s.
Методы string
Для начала следует сказать, что для строки определены итераторы begin() и end(). Указывающие соответственно на первый и на последний символы.
- s.size() / s.lenght() Возвращает длину строки s. В следующем коде мы циклом идем по строке и выводим каждый символ.
- s.append(s1) Данная функция добавляет строку s1 в конец строки s.
- s.erase() Данная функция имеет несколько перегрузок:
s.erase(pos,n) | удаляет n символов начиная с позиции pos |
s.erase(iterator) | iterator - это итератор, указывающий на символ. В результате применения функции этот символ будет удален |
s.erase(it begin, it end) | it begin, it end - итераторы, указывающие на начало и конец удаляемой последовательности |
В данном коде показаны преобразования строки, сделанные erase().
-
s.find(ch) Возвращает позицию, с которой ch входит в s. В свою очередь ch может быть отдельным символом или строкой. Если ch не найдено, возвращает string::npos.
-
s.substr(pos,n) Возвращает подстроку из n символов начиная с позиции pos.
-
Перевод строки в число и наоборот Когда возникает потребность перевести число в строку, может пригодиться функция stoi:
Если же нам нужно перевести число в строку, воспульзуемся функцией to_string:
Символьные функции
Иногда нам нужно отвечать на вопрос: а является ли символ буквой, цифрой, знаком пунктуации etc? Тогда нам могут помочь символьные функции. Они принимают на вход символ и возвращают логическое значение.
isalpha(char) | true, если буква |
ispunct(char) | true, если знак пунктуации |
isdigit(char) | true, если десятичная цифра |
isspace(char) | true, если пробел |
islower(char) | true, если символ нижнего регистра |
isupper(char) | true, если символ вернего регистра |
tolower(char) | возвращает char в нижнем регистре |
toupper(char) | возвращает char в верхнем регистре |
Решение задачи : проверка на палиндромность
Создадим логическую функцию, с помощью которой будем определять, является ли строка палиндромом. Напомним, что палиндром - строка, которая читается одинаково с начала и с конца. Например, abba - палиндром.