Определяет шаблон basic_string класса контейнера и различные вспомогательные шаблоны.
Дополнительные сведения см. в basic_string разделе basic_string «Класс»
Синтаксис
#include
Remarks
Язык C++ и библиотека Standard C++ поддерживают два типа строк:
- Массивы символов, оканчивающиеся нулевым символов, часто называют строками C.
- Объекты шаблона класса типа basic_string , которые обрабатывают все char аргументы шаблона, подобные аргументам шаблона.
Определения типов
| string | Тип, описывающий специализацию шаблона basic_string класса с элементами типа char в виде string . |
| wstring | Тип, описывающий специализацию шаблона basic_string класса с элементами типа wchar_t в виде wstring . |
| u16string | Тип, описывающий специализацию шаблона basic_string класса на основе элементов типа char16_t . |
| u32string | Тип, описывающий специализацию шаблона basic_string класса на основе элементов типа char32_t . |
Операторы
| operator+ | Сцепляет два строковых объекта. |
| operator!= | Проверяет, что строковый объект слева от оператора не равен строковому объекту справа от оператора. |
| operator== | Проверяет, равен ли строковый объект слева от оператора строковому объекту справа от оператора. |
| operator< | Проверяет, что строковый объект слева от оператора меньше строкового объекта справа от оператора. |
| operator | Проверяет, что строковый объект слева от оператора меньше или равен строковому объекту справа от оператора. |
| operator | Функция шаблона, вставляющая строку в выходной поток. |
| operator> | Проверяет, что строковый объект слева от оператора больше строкового объекта справа от оператора. |
| operator>= | Проверяет, что строковый объект слева от оператора больше или равен строковому объекту справа от оператора. |
| operator>> | Функция шаблона, извлекающая строку из входного потока. |
Специализированные функции шаблонов
| hash | Создает хэш строки. |
| swap | Меняет местами массивы символов двух строк. |
| stod | Преобразует последовательность символов в double . |
| stof | Преобразует последовательность символов в float . |
| stoi | Преобразует последовательность символов в int . |
| stold | Преобразует последовательность символов в long double . |
| stoll | Преобразует последовательность символов в long long . |
| stoul | Преобразует последовательность символов в unsigned long . |
| stoull | Преобразует последовательность символов в unsigned long long . |
| to_string | Преобразует значение в string . |
| to_wstring | Преобразует значение в расширенную строку. |
Функции
| getline Шаблон | Извлеките строку string по строкам из входного потока. |
Классы
| basic_string Класса | Шаблон класса, описывающий объекты, которые могут хранить последовательность произвольных объектов, похожих на символы. |
| char_traits Структура | Шаблон класса, описывающий атрибуты, связанные с символом типа CharType |
Специализации
| char_traits Структура | Структура, которая является специализацией структуры char_traits шаблона на элемент типа char . |
| char_traits Структура | Структура, которая является специализацией структуры char_traits шаблона на элемент типа wchar_t . |
| char_traits Структура | Структура, которая является специализацией структуры char_traits шаблона на элемент типа char16_t . |
| char_traits Структура | Структура, которая является специализацией структуры char_traits шаблона на элемент типа char32_t . |
Источник: learn.microsoft.com
Программирование на Си урок 32: Строки, функции: strstr, strcmp в языке Си
Конкатенация строк что это. Объединение строк.Тип данных string c++ что это. Урок #64
String в языке С: определение, типы, методы и использование
![]()
String в С — это определенный тип данных, который , по сути , является последовательностью различных символов, заключенных в «кавычки». Такой тип данных используется для написания каких-либо текстовых сообщений: имя, адрес, слова, предложения и др.
После подключения заголовочного файл а с о «строками» в С можно работать как с обычными переменными. Например, их можно объявлять и присваивать им значения:
std:: string auto(“AUDI“); //создаем переменную «auto» и присваиваем ей строковое значение «AUDI»
name = “VAZ“; //присваиваем переменной «auto» строковое значение «VAZ»
String в С может принимать любые символы, даже числа. Но если вписать в «строку» число, то оно оста н ется строкой и выполнять с ним арифметические действия не получится. С не преобразует число , записанное в «string» , в целочисленный тип данных, чтобы с ним можно было взаимодействовать как с числом.
Работа со string в Си
Строки можно выводить при помощи «cout» или «cin». Например, как работает «cout»:
int main()
std::string name(“Владимир“);
std::count < < “Меня зовут“ < < name;
return 0;
>
В результате выполнения программы мы получим: «Меня зовут Владимир».
Как работает «cin»:
int main()
std::cout < < “Введите ваше полное имя: “;
std::string myName;
std::cin > > myName
std::cout < < “Введите ваш возраст: “;
std::string myAge;
std::cin > > myAge;
std::cout « “ Ваше имя “ < < myName < < “ и ваш возраст “ < < myAge;
>
Результатом работы такой программы будет:
Введите ваше полное имя: «Владимир Мономах»
Введите ваш возраст: Ваше имя Владимир и ваш возраст Мономах
Вышло как-то не очень. Почему так? Оператор «>>» и «сin» работают немного по-другому. Оператор «>>» извлекает символы из входного потока, только до первого пробела, а остальные данные хранятся в «cin», пока не будут еще раз извлечены.
Мы хотели извлечь полное имя в переменную «myName» при помощи оператора «>>», однако вместо всего имени «Владимир Мономах» мы получили только «Владимир», а вторым извлечением получили «Мономах». Если бы у нас было третье извлечение, тогда у нас был бы извлечен возраст, допустим , «30». Из этой ситуации есть выход.
Если необходимо извлекать все данные из входного потока, включая пробелы, тогда необходимо использовать функцию «std::getline()», которая несет в себе 2 аргумента: «std::cin» и «string». Вот как это выглядит:
int main()
std::cout < < “Введите ваше полное имя: “;
std::string myName;
std::getline(std::cin, myName);
std::cout < < “Введите ваш возраст: “;
std::string myAge;
std::getline(std::cin, myAge);
std::cout « “ Ваше имя “ < < myName < < “ и ваш возраст “ < < myAge;
>
Результатом такой программы будет:
Введите ваше имя: Владимир Мономах
Введите ваш возраст: 30
Ваше имя Владимир Мономах и ваш возраст 30
При такой реализации все будет работать как надо.
С вводом и выводом string в Си мы разобрались, но с о строками можно выполнять и другие манипуляции.
String в Си — это не только текст
- посимвольное сравнение при помощи операторов «==» или «!=»;
- лексикографическое сравнение при помощи операторов «», «=».
String в Си: методы
- Функция «size()». При помощи этой функции можно узнать длину строки.
- Функция «resize(n)». При помощи этой функции можно изменить длину строки, которая станет р а вняться «n».
- Функция «clear()». Данная функция полностью очищает строку и делает ее пустой.
- Функция «emp t y()». При помощи этой функции можно проверить string — является она пустой или нет.
- Функция «push_back(c)». При помощи этой функции в конец строки добавляется символ «с».
- Функция «append()». Эта функция способна добавить в конец строки не просто символ, а другую строку или фрагмент строки.
- Функция «erase(pos, cont)». При помощи этой функции можно удалить символы, начиная с индекса, указанного в «pos». «Cont» используется, чтобы обозначить количество символов, которые нужно удалить ; если не указать этот аргумент, тогда удалятся все символы до конца строки.
- Функция «substr(pos, cont)». При помощи этой функции можно извлечь подстроку из строки, начиная с индекса , указанного в «pos». «Сont» необходимо указать, если нужно извлечь определенное количество символов.
- Функция «replace(pos, cont)». Эта функция заменяет строку, кусочек строки или отдельный символ в строке на необходимое значение.
- Функция «find(str, pos)». При помощи этой функции можно искать вхождение одной строки в друг ую . Функция возвращает индекс первого символа в строке, где найдено вхождение.
Заключение
String в Си хоть и не являются встроенным типом данных, но очень многофункциональны и часто применяются в программировании. Поэтому при изучении Си или С++ обязательно нужно понимать , как можно взаимодействовать со строками или другими типами данных , — это является основой программирования на любом языке.
Руководство C/C++ String
Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи.
Facebook
1- C-Style String
1.1- String
В C++ имеется два вида строка (string), строки в стиле C (C-style string), и строки в стиле C++ (C++-Style string).
C-Style string это массивы знаков, но есть разные функции использующиеся для строк, например добавление в строки, нахождение длины строк, и так же проверка соответствия строк с регулярным выражением (regular expression).
Определение строки будет то, что содержит более одного знака связанных друг с другом. Например, «this» это строка. При этом, один знак не считается строкой, несмотря на то, что они используются как строки.
String это массив знаков. Используйте ковычки для отметки строки букв (string literals)
// Declare a C-Style String. char mystring[] = < ‘t’, ‘h’, ‘i’, ‘s’, ‘ ‘, ‘i’, ‘s’ ,’ ‘, ‘t’, ‘e’, ‘x’, ‘t’, ‘