Строки в С++
- Библиотека обработки строк Библиотека обработки строк string.h. Примеры: Конкатенация строк, Поиск символов.
Строковая константа - это последовательность из нуля или более символов, заключенных в кавычки. Кавычки не являются частью строковой константы, а служат только для ее ограничения. Строки представляются в виде массива элементов типа char. Это означает, что символы строки можно представить расположенными в соседних ячейках памяти - по одному символу в ячейке.
Но массив символов - не всегда строка!
Не следует путать символьную константу со строкой, содержащей один символ: 'Х' - это не то же самое, что "Х". В первом случае - это отдельный символ. Во втором случае - это строка, состоящая из одного символа (буквы Х) и символа конца строки '\0'.
Правила инициализации строковых массивов
#include <iostream> using namespace std; int n=5; char line[] = "Cat!"; // Инициализация строкового массива. void main () { cout << "Word: "; // Показ на экран строкового массива. cout <<line; }
Строки и указатели
В программе доступ к строке осуществляется с помощью указателя на символ. Если описать переменную message как
char *message;
то в результате выполнения оператора
message = "and bye!";
message станет указателем на строку.
#include <iostream> using namespace std; int main () { char *message; char privet[] = "and bye!"; char *pr = privet; message = "Hello"; cout << " " << message << " " << pr << "\n"; int i = 0; while (*(pr+i)!='\0') { cout<< *(pr+i++) << " "; } }
Использование указателей часто применяется при работе с массивом строк. В этом случае к каждой строке можно обратиться с помощью указателя на его первый символ. Это удобно тем, что для перестановки двух строк, расположенных в неправильном порядке, фактически достаточно переставить указатели в массиве указателей, а не сами строки.
Рассматривается функция month_name(), которая возвращает указатель на строку, содержащий имя n-го месяца. Это типичная задача для использования строкового массива.
Функция month_name() содержит локальный массив строк и при обращении к ней возвращает указатель на нужную строку.
В описании массива указателей на символы name[] инициализатором является просто список строк. Символы i-й строки помещаются в определенное место памяти, а указатель на ее начало хранится в элементе name[i]. Поскольку размер массива name не указан, компилятор сам подсчитывает количество инициализаторов и соответственно устанавливает правильное число.
#include <iostream> using namespace std; char *month_name(int); int main () { const int n=15; for (int i=0; i < n; i++) cout << "Month number " << i << " - " << month_name(i) <<"\n"; } char *month_name (int k) /* Название k-го месяца */ { static char *name[] = { "none","January", "February","March","April", "May","June","July","August", "September","October","November", "December" }; return (k<1||k>12)?name[0]:name[k]; }
Результат работы программы:
Month number 0 - none Month number 1 - January Month number 2 - February Month number 3 - March Month number 4 - April Month number 5 - May Month number 6 - June Month number 7 - July Month number 8 - August Month number 9 - September Month number 10 - October Month number 11 - November Month number 12 - December Month number 13 - none Month number 14 - none Press any key to continue
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах