string str c что это

String str c что это

В современном стандарте C++ определен класс с функциями и свойствами (переменными) для организации работы со строками (в классическом языке C строк как таковых нет, есть лишь массивы символов char ):

Для работы со строками также нужно подключить стандартный namespace :

Ниже приводится пример программы, работающей со string (в старых си-совместимых компиляторах не работает!):

Рассмотрим эти базовые возможности более подробно.

Инициализация строк при описании и длина строки (не включая завершающий нуль-терминатор):

Строка может быть задана и пустой:

Для проверки того, пуста ли строка, можно сравнить ее длину с 0:

Третья форма создания строки инициализирует объект типа string другим объектом того же типа:

Как скопировать одну строку в другую? С помощью обычной операции присваивания:

Для сцепления строк используется операция сложения ( + ) или операция сложения с присваиванием ( += ). Пусть даны две строки:

Мы можем получить третью строку, состоящую из конкатенации первых двух, таким образом:

Обратное преобразование при этом не работает. Попытка выполнить следующую инициализацию строки встроенного типа вызовет ошибку компиляции:

Чтобы осуществить такое преобразование, необходимо явно вызвать функцию-член с названием c_str() («строка Си»):

Функция c_str() возвращает указатель на символьный массив, содержащий строку объекта string в том виде, в каком она находилась бы во встроенном строковом типе. Ключевое слово const здесь предотвращает «опасную» в современных визуальных средах возможность непосредственной модификации содержимого объекта через указатель.

Но лучше читать документацию по C++ и пользоваться его возможностями. Например, предыдущее действие мы могли бы выполнить вызовом одной-единственной функции replace() :

Задание символов в строке

присваивает значения строке

назначает символы строке

Доступ к отдельным символам

получение указанного символа с проверкой выхода индекса за границы

получение указанного символа

получение первого символа

получение последнего символа

возвращает указатель на первый символ строки

Проверка на вместимость строки

проверяет, является ли строка пустой

возвращает количество символов в строке

возвращает максимальное количество символов

Источник

Строки в языке C++ (класс string)

В языке C++ для удобной работы со строками есть класс string, для использования которого необходимо подключить заголовочный файл string.

Строки можно объявлять и одновременно присваивать им значения:

string S1, S2 = «Hello»;

Строка S1 будет пустой, строка S2 будет состоять из 5 символов.

Строки в языке C++ могут

Конструкторы строк

Конструкторы можно вызывать явно, например, так:

Неявно конструктор вызывается при объявлении строки с указанием дополнительных параметров. Например, так:

Подробней о конструкторах для строк читайте здесь.

Ввод-вывод строк

Строка выводится точно так же, как и числовые значения:

cout >» для объекта cin:

Можно считывать строки до появления символа конца строки при помощи функции getline. Сам символ конца строки считывается из входного потока, но к строке не добавляется:

Арифметические операторы

Подробней о методе resize.

clear

Подробней о методе clear.

empty

Подробней о методе empty.

push_back

Подробней о методе push_back.

append

Добавляет в конец строки несколько символов, другую строку или фрагмент другой строки. Имеет много способов вызова.

Подробней о методе append.

erase

Подробней о методе erase.

insert

Подробней о методе insert.

substr

Подробней о методе substr.

replace

Заменяет фрагмент строки на несколько равных символов, другую строку или фрагмент другой строки. Способы вызова аналогичны способам вызова метода append, только первыми двумя параметрами являются два числа: pos и count. Из данной строки удаляется count символов, начиная с символа pos, и на их место вставляются новые символы.

Подробней о методе replace.

Подробней о методе find.

rfind

Ищет последнее вхождение подстроки («правый» поиск). Способы вызова аналогичны способам вызова метода find.

Подробней о методе rfind.

find_first_of

Ищет в данной строке первое появление любого из символов данной строки str. Возвращается номер этого символа или значение string::npos.

Читайте также:  какие тарифы есть в яндекс такси

find_last_of

Ищет в данной строке последнее появление любого из символов данной строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

Подробней о методе find_last_of.

find_first_not_of

Ищет в данной строке первое появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

find_last_not_of

Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

c_str

Возвращает указать на область памяти, в которой хранятся символы строки, возвращает значение типа char*. Возвращаемое значение можно рассматривать как C-строку и использовать в функциях, которые должны получать на вход C-строку.

Источник

Строки (Руководство по программированию на C#)

Сравнение строки и System.String

Объявление и инициализация строк

Вы можете объявлять и инициализировать строки различными способами, как показано в следующем примере:

Обратите внимание, что вы не используете оператор new для создания объекта строки, за исключением случаев инициализации строки с помощью массива символов.

Инициализируйте строку с константным значением Empty для создания нового объекта String, строка которого имеет нулевую длину. Представлением строкового литерала строки с нулевой длиной является «». Если вы инициализируете строки со значением Empty вместо NULL, вы снизите вероятность появления исключения NullReferenceException. Используйте статический метод IsNullOrEmpty(String), чтобы проверить значение строки, прежде чем пытаться получить к ней доступ.

Неизменность строковых объектов

Так как «изменение» строки на самом деле является созданием новой строки, создавать ссылки на строки следует с осторожностью. Если вы создадите ссылку на строку, а затем «измените» исходную строку, ссылка будет по-прежнему указывать на исходный объект, а не на новый объект, который был создан при изменении строки. Это поведение проиллюстрировано в следующем коде:

Сведения о создании новых строк, основанных на таких изменениях, как операции поиска и замены исходной строки, см. в инструкциях по изменению содержимого строки.

Регулярные и буквальные строковые литералы

Используйте регулярные строковые литералы, когда вам нужно внедрить escape-символы, доступные в C#, как показано в следующем примере:

Буквальные строковые литералы используются для удобства и читабельности, если текст строки содержит символы обратной косой черты, например в путях к файлам. Так как буквальные строки сохраняют символы новой строки как часть текста строки, их можно использовать для инициализации многострочных строк. Используйте двойные кавычки, чтобы вставить кавычки в буквальной строке. В следующем примере показаны наиболее часто используемым буквальные строки:

Escape-последовательности строк

Escape-последовательность Имя символа Кодировка Юникод
\’ Одинарная кавычка 0x0027
Двойная кавычка 0x0022
\\ Обратная косая черта 0x005C
\0 Null 0x0000
\a Предупреждение 0x0007
\b Backspace 0x0008
\f Перевод страницы 0x000C
\n Новая строка 0x000A
\r Возврат каретки 0x000D
\t Горизонтальная табуляция 0x0009
\v Вертикальная табуляция 0x000B
\u Escape-последовательность Юникода (UTF-16) \uHHHH (диапазон: 0000–FFFF; пример: \u00E7 = «ç»)
\U Escape-последовательность Юникода (UTF-32) \U00HHHHHH (диапазон: 000000–10FFFF; пример: \U0001F47D = «👽»)
\x Escape-последовательность Юникода аналогична «\u», она отличается только длиной переменной \xH[H][H][H] (диапазон: 0–FFFF; пример: \x00E7 или \x0E7 или \xE7 = «ç»)

Если вы используете escape-последовательность \x с менее чем четырьмя шестнадцатеричными цифрами, то когда непосредственно следующие за ней символы также являются допустимыми шестнадцатеричными цифрами (т. е. 0–9, A–F и a–f), они будут интерпретированы как часть этой escape-последовательности. Например, \xA1 дает результат «¡», являющийся кодовой точкой U+00A1. Однако если следующий символ — «A» или «a», тогда escape-последовательность будет интерпретироваться как \xA1A и даст результат «ਚ», являющийся кодовой точкой U+0A1A. В таких случаях, чтобы избежать некорректной интерпретации, указывайте все четыре шестнадцатеричных знака (например, \x00A1 ).

Во время компиляции буквальные строки преобразуются в обычные строки с теми же escape-последовательностями. Поэтому, если вы просматриваете буквальную строку в окне контрольных значений отладчика, вы увидите escape-символы, добавленные компилятором, а не буквальную версию из исходного кода. Например, буквальная строка @»C:\files.txt» будет отображаться в окне контрольных значений как «C:\\files.txt».

Строки формата

Строка формата — это строка, содержимое которой можно определить динамически во время выполнения. Строки формата создаются путем внедрения интерполированных выражений или заполнителей внутри фигурных скобок в строке. Весь код внутри фигурных скобок ( <. >) будет преобразован в значение и выходные данные как отформатированная строка во время выполнения. Существует два способа создания строк формата: интерполяция строк и составное форматирование.

Интерполяция строк

Начиная с C# 10, можно использовать интерполяцию строк для инициализации константной строки, если все выражения, используемые для заполнителей, также являются константными строками.

Составное форматирование

String.Format использует заполнители в фигурных скобках, чтобы создать строку формата. В этом примере результат аналогичен выходным данным, получаемым с помощью метода интерполяции строк, описанного выше.

Подстроки

Подстрока — это последовательность символов, содержащихся в строке. Используйте метод Substring, чтобы создать новую строку из части исходной строки. Одно вхождение подстроки или несколько можно найти с помощью метода IndexOf. Используйте метод Replace, чтобы заменить все вхождения указанной подстроки новой строкой. Как и метод Substring, метод Replace фактически возвращает новую строку и не изменяет исходную строку. См. дополнительные сведения о поиске строк и изменении содержимого строк.

Доступ к отдельным символам

Используя нотацию массива со значением индекса, можно получить доступ только для чтения к отдельным символам, как показано в следующем примере:

Если вам необходимо изменить отдельные символы в строке и функций методов String вам недостаточно, используйте объект StringBuilder, чтобы изменить отдельные символы «на месте», а затем создайте новую строку для сохранения результатов с помощью методов StringBuilder. В следующем примере предположим, что необходимо определенным образом изменить исходную строку, а затем сохранить результаты для дальнейшего использования:

Строки NULL и пустые строки

Пустая строка — это экземпляр объекта System.String, который содержит нуль символов. Пустые строки часто используются в различных сценариях программирования для представления пустого текстового поля. Вы можете вызывать методы для пустых строк, так как они являются допустимыми объектами System.String. Пустые строки инициализируются следующим образом:

В отличие от пустых строк строка NULL не ссылается на экземпляр объекта System.String, поэтому любая попытка вызвать метод для строки NULL приводит к исключению NullReferenceException. Но вы можете использовать строки NULL в операциях объединения и сравнения с другими строками. В следующих примерах показаны случаи, в которых ссылка на строку NULL вызывает и не вызывает исключение:

Использование класса StringBuilder для быстрого создания строк

В этом примере объект StringBuilder используется для создания строки из набора числовых типов:

Строки, методы расширения и LINQ

Источник

Строка (C++/CLI и C++/CX)

Среда выполнения Windows и среда CLR представляют строки в виде объектов, управление выделяемой памятью которых осуществляется автоматически. Это значит, что в случае выхода строковой переменной за пределы области видимости или завершении работы приложения явно отменять память для строки не требуется. Чтобы указать, что управление временем существования строкового объекта должно осуществляться автоматически, следует объявить тип string с помощью модификатора дескриптор объекта (^).

Среда выполнения Windows

Синтаксис

Требования

Параметр компилятора: /ZW

Среда CLR

При компиляции с параметром /clr компилятор преобразует строковые литералы в строки типа String. Для сохранения обратной совместимости с существующим кодом у этого правила есть два исключения:

Обработка исключений. Если появляется строковый литерал, компилятор перехватывает его как строковый литерал.

Определение шаблона. Если строковый литерал передается в качестве аргумента шаблона, компилятор не преобразует его в String. Обратите внимание, что строковые литералы, переданные в качестве универсального аргумента, повышаются до String.

В компиляторе также есть встроенная поддержка трех операторов, которые можно переопределять для настройки их поведения:

System::String^ operator +( System::String, System::String);

System::String^ operator +( System::Object, System::String);

System::String^ operator +( System::String, System::Object);

После передачи String компилятор при необходимости упаковывает, а затем объединяет объект (с помощью ToString) со строкой.

Курсор («^») означает, что объявленная переменная является дескриптором управляемого объекта C++/CLI.

Требования

Параметр компилятора: /clr

Примеры

В следующем примере кода демонстрируется объединение и сравнение строк.

В следующем примере показано, что предоставляемые компилятором операторы можно перегружать, и что компилятор будет искать перегрузку функции на основе типа String.

В следующем примере показано, что компилятор различает собственные строки и строки String.

Источник

Функции

getline

Извлекает строки из входного потока, последовательно по одной строке.

Параметры

in_stream
Входной поток, из которого извлекается строка.

str
Строка, в которую считываются символы из входного потока.

delimiter
Разделитель строк.

Возвращаемое значение

Remarks

Вторая функция каждой пары является аналогом первой из них для поддержки rvalue ссылок.

Извлечение останавливается при возникновении одного из следующих условий.

Если возникает исключение in_stream и str они остаются в допустимом состоянии.

Пример

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

Возвращаемое значение

double Значение.

Remarks

Преобразует последовательность символов в число с плавающей запятой.

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

Возвращаемое значение

float Значение.

Remarks

Преобразует последовательность символов в целое число.

Возвращаемое значение

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

base
Используемое числовое основание.

Remarks

Функция stoi преобразует последовательность символов в str в значение типа int и возвращает значение. Например, если передать последовательность символов «10», stoi возвращает целочисленное значение 10.

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

base
Используемое числовое основание.

Возвращаемое значение

Длинное целое значение.

Remarks

stold

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

Возвращаемое значение

long double Значение.

Remarks

stoll

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

base
Используемое числовое основание.

Возвращаемое значение

long long Значение.

Remarks

stoul

Преобразует последовательность символов в длинное целое без знака.

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

base
Используемое числовое основание.

Возвращаемое значение

Длинное целое значение без знака.

Remarks

stoull

Параметры

str
Последовательность символов для преобразования.

idx
Значение индекса первого непреобразованного символа.

base
Используемое числовое основание.

Возвращаемое значение

unsigned long long Значение.

Remarks

Меняет местами массивы символов двух строк.

Параметры

left
Одна строка, элементы которой должны быть заменены элементами другой строки.

right
Другая строка, элементы которой будут заменены на элементы первой строки.

Remarks

Пример

to_string

Параметры

value
Преобразуемое значение.

Возвращаемое значение

Remarks

«%d» Если value имеет тип int

«%u» Если value имеет тип unsigned int

«%ld» Если value имеет тип long

«%lu» Если value имеет тип unsigned long

«%lld» Если value имеет тип long long

«%llu» Если value имеет тип unsigned long long

«%f» Если value имеет тип float или double

«%Lf» Если value имеет тип long double

to_wstring

Преобразует значение в расширенную строку.

Параметры

value
Преобразуемое значение.

Возвращаемое значение

Расширенная строка, представляющая значение.

Remarks

L»%d» Если value имеет тип int

L»%u» Если value имеет тип unsigned int

L»%ld» Если value имеет тип long

L»%lu» Если value имеет тип unsigned long

L»%lld» Если value имеет тип long long

L»%llu» Если value имеет тип unsigned long long

L»%f» Если value имеет тип float или double

L»%Lf» Если value имеет тип long double

Источник

Читайте также:  wallpaper android что это
Информ портал о технике и не только