PIP 5.9.0
Platform-Independent Primitives
Загрузка...
Поиск...
Не найдено
Класс PIString

Класс строки. Подробнее...

#include <pistring.h>

Открытые члены

 PIString ()
 Создает пустую строку.
 PIString (const PIString &o)
 Создает копию строки.
 PIString (PIString &&o)
 Перемещающий конструктор.
 PIString (const PIChar c)
 Создает строку из одного символа "c".
 PIString (const char c)
 Создает строку из одного символа "c".
 PIString (const char *str)
 Создает строку из C-строки "str" (кодировка системы).
 PIString (const wchar_t *str)
 Создает строку из wchar_t C-строки "str".
 PIString (const char16_t *str)
 Создает строку из char16_t C-строки "str".
 PIString (const PIChar *str, const int len)
 Создает строку из "len" символов массива "str".
 PIString (const char *str, const int len)
 Создает строку из "len" символов массива "str" (кодировка системы).
 PIString (const int len, const char c)
 Создает строку как последовательность длиной "len" символа "c".
 PIString (const int len, const PIChar c)
 Создает строку как последовательность длиной "len" символа "c".
PIString & operator= (const PIString &o)
 Оператор присваивания.
PIString & operator= (PIString &&o)
 Оператор перемещающего присваивания.
PIString & operator= (const PIConstChars &o)
 Оператор присваивания.
PIString & operator= (const char *o)
 Оператор присваивания.
PIString & operator= (const char16_t *o)
 Оператор присваивания.
bool operator== (const PIString &str) const
 Оператор сравнения.
bool operator== (const PIChar c) const
 Оператор сравнения.
bool operator== (const char *str) const
 Оператор сравнения.
bool operator!= (const PIString &str) const
 Оператор сравнения.
bool operator!= (const PIChar c) const
 Оператор сравнения.
bool operator!= (const char *str) const
 Оператор сравнения.
bool operator< (const PIString &str) const
 Оператор сравнения.
bool operator< (const PIChar c) const
 Оператор сравнения.
bool operator< (const char *str) const
 Оператор сравнения.
bool operator> (const PIString &str) const
 Оператор сравнения.
bool operator> (const PIChar c) const
 Оператор сравнения.
bool operator> (const char *str) const
 Оператор сравнения.
bool operator<= (const PIString &str) const
 Оператор сравнения.
bool operator<= (const PIChar c) const
 Оператор сравнения.
bool operator<= (const char *str) const
 Оператор сравнения.
bool operator>= (const PIString &str) const
 Оператор сравнения.
bool operator>= (const PIChar c) const
 Оператор сравнения.
bool operator>= (const char *str) const
 Оператор сравнения.
iterator begin ()
 Итератор на первый элемент.
iterator end ()
 Итератор на элемент, следующий за последним элементом.
reverse_iterator rbegin ()
 Обратный итератор на первый элемент.
reverse_iterator rend ()
 Обратный итератор на элемент, следующий за последним элементом.
PIChar & operator[] (size_t index)
 Полный доступ к символу по индексу index.
const PIChar at (size_t index) const
 Доступ исключительно на чтение к символу по индексу index.
PIChar & back ()
 Возвращает последний символ строки.
PIString & resize (size_t new_size, PIChar c=PIChar())
 Устанавливает размер строки, новые символы копируются из c.
PIString & pop_back ()
 Удаляет один символ с конца строки.
PIString & pop_front ()
 Удаляет один символ с начала строки.
PIString & remove (size_t index, size_t count=1)
 Удаляет символы из строки, начиная с позиции index в количестве count.
PIString & fill (PIChar c=PIChar())
 Заполняет всю строку символами c.
PIString & prepend (const char *str)
 Вставляет "str" в начало строки.
PIString & prepend (const PIString &str)
 Вставляет "str" в начало строки.
PIString & prepend (const PIChar c)
 Вставляет символ c в начало строки.
PIString & prepend (const char c)
 Вставляет символ c в начало строки.
PIString & push_front (const char *str)
 Вставляет "str" в начало строки.
PIString & push_front (const char16_t *str)
 Вставляет "str" в начало строки.
PIString & push_front (const PIString &str)
 Вставляет "str" в начало строки.
PIString & push_front (const PIChar c)
 Вставляет символ c в начало строки.
PIString & push_front (const char c)
 Вставляет символ c в начало строки.
PIString & append (const char *str)
 Вставляет "str" в конец строки.
PIString & append (const char16_t *str)
 Вставляет "str" в конец строки.
PIString & append (const PIString &str)
 Вставляет "str" в конец строки.
PIString & append (const PIChar c)
 Вставляет символ c в конец строки.
PIString & append (const char c)
 Вставляет символ c в конец строки.
PIString & push_back (const char *str)
 Вставляет "str" в конец строки.
PIString & push_back (const PIString &str)
 Вставляет "str" в конец строки.
PIString & push_back (const PIChar c)
 Вставляет символ c в конец строки.
PIString & push_back (const char c)
 Вставляет символ c в конец строки.
PIString mid (int start, int len=-1) const
 Возвращает подстроку от символа "start" и максимальной длиной "len".
PIString subString (int start, int len=-1) const
 Аналог mid().
PIString left (int len) const
 Возвращает подстроку от начала и максимальной длиной "len".
PIString right (int len) const
 Возвращает подстроку максимальной длиной "len" и до конца.
PIString & cutMid (int start, int len)
 Удаляет часть строки от символа "start" и максимальной длины "len", возвращает эту строку.
PIString & cutLeft (int len)
 Удаляет часть строки от начала и максимальной длины "len", возвращает эту строку.
PIString & cutRight (int len)
 Удаляет часть строки максимальной длины "len" от конца, возвращает эту строку.
PIString & trim ()
 Удаляет пробельные символы с начала и конца строки и возвращает эту строку.
PIString trimmed () const
 Возвращает копию этой строки без пробельных символов с начала и конца.
PIString & replace (const int from, const int count, const PIString &with)
 Заменяет часть строки от символа "from" и максимальной длины "len" строкой "with", возвращает эту строку.
PIString replaced (const int from, const int count, const PIString &with) const
 Заменяет часть копии этой строки от символа "from" и максимальной длины "len" строкой "with".
PIString & replace (const PIString &what, const PIString &with, bool *ok=0)
 Заменяет первую найденную подстроку "what" строкой "with", возвращает эту строку.
PIString replaced (const PIString &what, const PIString &with, bool *ok=0) const
 Заменяет в копии строки первую найденную подстроку "what" строкой "with".
PIString & replaceAll (const PIString &what, const PIString &with)
 Заменяет все найденные подстроки "what" строками "with", возвращает эту строку.
PIString & replaceAll (const PIString &what, const char with)
 Заменяет все найденные подстроки "what" символами "with", возвращает эту строку.
PIString & replaceAll (const char what, const char with)
 Заменяет все найденные символы "what" символами "with", возвращает эту строку.
PIString replacedAll (const PIString &what, const PIString &with) const
 Заменяет в копии строки все найденные подстроки "what" строками "with".
PIString replacedAll (const PIString &what, const char with) const
 Заменяет в копии строки все найденные подстроки "what" символами "with".
PIString replacedAll (const char what, const char with) const
 Заменяет в копии строки все найденные символы "what" символами "with".
PIString & removeAll (const PIString &str)
 Удаляет все найденные подстроки "what", возвращает эту строку.
PIString & removeAll (char c)
 Удаляет все найденные символы "what", возвращает эту строку.
PIString & repeat (int times)
 Повторяет содержимое строки "times" раз и возвращает эту строку.
PIString repeated (int times) const
 Возвращает повторённую "times" раз строку.
PIString & insert (const int index, const PIChar c)
 Вставляет символ "c" после позиции "index" и возвращает эту строку.
PIString & insert (const int index, const char c)
 Вставляет символ "c" после позиции "index" и возвращает эту строку.
PIString & insert (const int index, const PIString &str)
 Вставляет строку "str" после позиции "index" и возвращает эту строку.
PIString & insert (const int index, const char *c)
 Вставляет строку "str" после позиции "index" и возвращает эту строку.
PIString & insert (const int index, const char16_t *c)
 Вставляет строку "str" после позиции "index" и возвращает эту строку.
PIString & expandRightTo (const int len, const PIChar c)
 Увеличивает длину строки до "len" добавлением символов "c" в конец и возвращает эту строку.
PIString & expandLeftTo (const int len, const PIChar c)
 Увеличивает длину строки до "len" добавлением символов "c" в начало и возвращает эту строку.
PIString expandedRightTo (const int len, const PIChar c) const
 Увеличивает длину копии этой строки до "len" добавлением символов "c" в конец.
PIString expandedLeftTo (const int len, const PIChar c) const
 Увеличивает длину копии этой строки до "len" добавлением символов "c" в начало.
PIString & quote (PIChar c=PIChar('"'))
 Добавляет символ "c" в начало и конец и возвращает эту строку.
PIString quoted (PIChar c=PIChar('"'))
 Возвращает копию строки с добавленным в начало и конец символом "c".
PIString & reverse ()
 Разворачивает и возвращает эту строку.
PIString reversed () const
 Разворачивает копию этой строки.
PIString & elide (int size, float pos=ElideCenter)
 Уменьшает строку до размера "size", вставляя ".." в положение "pos" и возвращает эту строку.
PIString elided (int size, float pos=ElideCenter) const
 Уменьшает копию этой строки до размера "size", вставляя ".." в положение "pos".
PIString takeMid (const int start, const int len=-1)
 Извлекает часть строки от символа "start" максимальной длины "len" и возвращает её.
PIString takeLeft (const int len)
 Извлекает часть строки от начала максимальной длины "len" и возвращает её.
PIString takeRight (const int len)
 Извлекает часть строки с конца максимальной длины "len" и возвращает её.
PIString takeSymbol ()
 Извлекает символ с начала строки и возвращает его как строку.
PIString takeWord ()
 Извлекает слово с начала строки и возвращает его.
PIString takeCWord ()
 Извлекает слово из букв, цифр и симолов '' с начала строки и возвращает его.
PIString takeLine ()
 Извлекает строку текста (до новой строки) с начала строки и возвращает её.
PIString takeNumber ()
 Извлекает число в C-формате с начала строки и возвращает его как строку.
PIString takeInteger ()
 Извлекает цифры с начала строки и возвращает их как строку.
PIString takeRange (const PIChar start, const PIChar end, const PIChar shield='\\')
 Извлекает диапазон между символами "start" и "end" с начала строки и возвращает его.
PIString inBrackets (const PIChar start, const PIChar end) const
 Возвращает строку между символами "start" и "end" с начала строки.
const char * data () const
 Возвращает char * представление строки в системной кодировке.
const char * dataConsole () const
 Возвращает char * представление строки в кодировке консоли.
const char * dataUTF8 () const
 Возвращает char * представление строки в кодировке UTF-8.
const char * dataAscii () const
 Возвращает char * представление строки в кодировке ASCII.
const size_t lastDataSize () const
 Возвращает размер данных последнего вызова data*().
uint hash () const
 Возвращает хэш строки
PIByteArray toByteArray () const
 Тоже самое, что toUTF8().
PIByteArray toAscii () const
 Возвращает PIByteArray содержащий dataAscii() строки без завершающего нулевого байта.
PIByteArray toSystem () const
 Возвращает PIByteArray содержащий data() строки без завершающего нулевого байта.
PIByteArray toUTF8 () const
 Возвращает PIByteArray содержащий dataUTF8() строки без завершающего нулевого байта.
PIByteArray toCharset (const char *c) const
 Возвращает PIByteArray содержащий строку в указанной кодировке без завершающего нулевого байта.
PIString simplified () const
 Возвращает PIString с заменёнными '?' не-ASCII символами.
PIString & mask (const PIString &symbols, const PIChar mc='\\')
 Вставляет перед любым символом из "symbols" символ "mc" и возвращает эту строку.
PIString & unmask (const PIString &symbols, const PIChar mc='\\')
 Удаляет символ "mc" перед любым символом из "symbols" и возвращает эту строку.
PIStringList split (const PIString &delim) const
 Разделяет строку в PIStringList через разделитель "delim".
PIString toUpperCase () const
 Преобразует каждый символ в скопированной строке в верхний регистр.
PIString toLowerCase () const
 Преобразует каждый символ в скопированной строке в нижний регистр.
bool contains (const char c) const
 Возвращает содержит ли строка символ "c".
bool contains (const PIChar c) const
 Возвращает содержит ли строка символ "c".
bool contains (const char *str) const
 Возвращает содержит ли строка подстроку "str".
bool contains (const PIString &str) const
 Возвращает содержит ли строка подстроку "str".
bool contains (const PIRegularExpression &regexp) const
 Возвращает совпадает ли строка "regexp".
int find (const char c, const int start=0) const
 Ищет символ "c" от символа "start" и возвращает первое вхождение.
int find (PIChar c, const int start=0) const
 Ищет символ "c" от символа "start" и возвращает первое вхождение.
int find (const PIString &str, const int start=0) const
 Ищет подстроку "str" от символа "start" и возвращает первое вхождение.
int find (const char *str, const int start=0) const
 Ищет подстроку "str" от символа "start" и возвращает первое вхождение.
int find (const PIRegularExpression &regexp, const int start=0) const
 Ищет совпадение с "regexp" от символа "start" и возвращает первое вхождение.
int findAny (const PIString &str, const int start=0) const
 Ищет любой символ строки "str" от симола "start" и возвращает первое вхождение.
int findAny (const char *str, const int start=0) const
 Ищет любой символ строки "str" от симола "start" и возвращает первое вхождение.
int findLast (const char c, const int start=0) const
 Ищет символ "c" от символа "start" и возвращает последнее вхождение.
int findLast (PIChar c, const int start=0) const
 Ищет символ "c" от символа "start" и возвращает последнее вхождение.
int findLast (const PIString &str, const int start=0) const
 Ищет подстроку "str" от символа "start" и возвращает последнее вхождение.
int findLast (const char *str, const int start=0) const
 Ищет подстроку "str" от символа "start" и возвращает последнее вхождение.
int findLast (const PIRegularExpression &regexp, const int start=0) const
 Ищет совпадение с "regexp" от символа "start" и возвращает последнее вхождение.
int findAnyLast (const PIString &str, const int start=0) const
 Ищет любой символ строки "str" от символа "start" и возвращает последнее вхождение.
int findAnyLast (const char *str, const int start=0) const
 Ищет любой символ строки "str" от символа "start" и возвращает последнее вхождение.
int findWord (const PIString &word, const int start=0) const
 Ищет слово "word" от симола "start" и возвращает первое вхождение.
int findCWord (const PIString &word, const int start=0) const
 Ищет C-слово "word" от симола "start" и возвращает первое вхождение.
int findRange (const PIChar start, const PIChar end, const PIChar shield='\\', const int start_index=0, int *len=0) const
 Ищет начало диапазона между символами "start" и "end" от симола "start" и возвращает первое вхождение.
int entries (const PIChar c) const
 Возвращает число вхождений символа "c".
int entries (const PIString &str) const
 Возвращает число вхождений строк "str".
int lineNumber (int pos) const
 Возвращает номер строки позиции "pos". Строки начинаются с 1.
bool startsWith (const char c) const
 Возвращает начинается ли строка с "c".
bool startsWith (const PIChar c) const
 Возвращает начинается ли строка с "c".
bool startsWith (const PIString &str) const
 Возвращает начинается ли строка со "str".
bool endsWith (const char c) const
 Возвращает оканчивается ли строка на "c".
bool endsWith (const PIChar c) const
 Возвращает оканчивается ли строка на "c".
bool endsWith (const PIString &str) const
 Возвращает оканчивается ли строка на "str".
int length () const
 Возвращает длину строки в символах.
size_t size () const
 Возвращает длину строки в символах.
ssize_t size_s () const
 Возвращает длину строки в символах.
bool isEmpty () const
 Возвращает true если строка пустая, т.е. длина = 0.
bool isNotEmpty () const
 Возвращает true если строка непустая, т.е. длина > 0.
void clear ()
 Очищает строку, строка становится пустой.
bool toBool () const
 Возвращает true если строка равна "true", "yes", "on" или числу > 0.
char toChar () const
 Возвращает char числовое значение строки.
short toShort (int base=-1, bool *ok=0) const
 Возвращает short числовое значение строки по основанию "base".
ushort toUShort (int base=-1, bool *ok=0) const
 Возвращает ushort числовое значение строки по основанию "base".
int toInt (int base=-1, bool *ok=0) const
 Возвращает int числовое значение строки по основанию "base".
uint toUInt (int base=-1, bool *ok=0) const
 Возвращает uint числовое значение строки по основанию "base".
long toLong (int base=-1, bool *ok=0) const
 Возвращает long числовое значение строки по основанию "base".
ulong toULong (int base=-1, bool *ok=0) const
 Возвращает ulong числовое значение строки по основанию "base".
llong toLLong (int base=-1, bool *ok=0) const
 Возвращает llong числовое значение строки по основанию "base".
ullong toULLong (int base=-1, bool *ok=0) const
 Возвращает ullong числовое значение строки по основанию "base".
float toFloat () const
 Возвращает float числовое значение строки.
double toDouble () const
 Возвращает double числовое значение строки.
ldouble toLDouble () const
 Возвращает ldouble числовое значение строки.
PIString & setNumber (const short value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const ushort value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const int value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const uint value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const long value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const ulong value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const llong &value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const ullong &value, int base=10, bool *ok=0)
 Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.
PIString & setNumber (const float value, char format='f', int precision=8)
 Устанавливает содержимое строки в текстовое представление "value" в формате "format" и точностью "precision" и возвращает эту строку.
PIString & setNumber (const double &value, char format='f', int precision=8)
 Устанавливает содержимое строки в текстовое представление "value" в формате "format" и точностью "precision" и возвращает эту строку.
PIString & setNumber (const ldouble &value, char format='f', int precision=8)
 Устанавливает содержимое строки в текстовое представление "value" в формате "format" и точностью "precision" и возвращает эту строку.
PIString & setReadableSize (llong bytes)
 Устанавливает содержимое в строку с читаемым размером B/KiB/MiB/GiB/TiB/PiB.
PIString toPercentageEncoding () const
 Возвращает URL-кодированную строку.
PIString & arg (const PIString &v)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (short v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (ushort v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (int v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (uint v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (long v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (ulong v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (llong v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (ullong v, int base=10)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (float v, char format='f', int precision=8)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (double v, char format='f', int precision=8)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
PIString & arg (ldouble v, char format='f', int precision=8)
 Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.
void swap (PIString &str)
 Меняет строку str с этой строкой.

Открытые статические члены

static PIString fromNumber (const short value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const ushort value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const int value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const uint value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const long value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const ulong value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const llong &value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const ullong &value, int base=10, bool *ok=0)
 Возвращает строковое представление числа "value" по основанию "base".
static PIString fromNumber (const float value, char format='f', int precision=8)
 Возвращает строковое представление числа "value" в формате "format" и точностью "precision".
static PIString fromNumber (const double &value, char format='f', int precision=8)
 Возвращает строковое представление числа "value" в формате "format" и точностью "precision".
static PIString fromNumber (const ldouble &value, char format='f', int precision=8)
 Возвращает строковое представление числа "value" в формате "format" и точностью "precision".
static PIString fromBool (const bool value)
 Возвращает "true" или "false".
static PIString fromConsole (const PIByteArray &s)
 Возвращает строку созданную из кодировки консоли.
static PIString fromConsole (const char *s)
 Возвращает строку созданную из кодировки консоли.
static PIString fromSystem (const PIByteArray &s)
 Возвращает строку созданную из кодировки системы.
static PIString fromSystem (const char *s)
 Возвращает строку созданную из кодировки системы.
static PIString fromUTF8 (const char *s, int l=-1)
 Возвращает строку созданную из UTF-8.
static PIString fromUTF8 (const PIByteArray &utf)
 Возвращает строку созданную из UTF-8.
static PIString fromAscii (const char *s)
 Возвращает строку созданную из ASCII.
static PIString fromAscii (const char *s, int len)
 Возвращает строку созданную из "len" символов ASCII.
static PIString fromAscii (const PIByteArray &ascii)
 Возвращает строку созданную из ASCII.
static PIString fromCodepage (const char *s, const char *cp)
 Возвращает строку созданную из кодировки "cp".
static PIString readableSize (llong bytes)
 Возвращает строку с читаемым размером B/KiB/MiB/GiB/TiB/PiB.
static PIString fromPercentageEncoding (const PIString &in)
 Возвращает строку из URL-кодированной"in".

Статические открытые данные

static const float ElideLeft = 0.f
 Значение для пропуска слева.
static const float ElideCenter = .5f
 Значение для пропуска в середине.
static const float ElideRight = 1.f
 Значение для пропуска справа.

(не члены класса)

int versionCompare (const PIString &v0, const PIString &v1, int components)
 Сравнивает две строки с версиями в произвольной форме и возвращает 0, -1 или 1.
PIString versionNormalize (const PIString &v)
 Преобразует строку с версией в произвольной форме к классическому виду.
std::string PIString2StdString (const PIString &v)
 Преобразует PIString в std::string, выгружая 16-битные коды символов побайтно.
PIString StdString2PIString (const std::string &v)
 Создает PIString из std::string.
std::wstring PIString2StdWString (const PIString &v)
 Преобразует PIString в std::wstring.
PIString StdWString2PIString (const std::wstring &v)
 Создает PIString из std::wstring.
PIString operator+ (const PIString &f, const std::string &str)
 Возвращает конкатенацию PIString и std::string.
PIString operator+ (const std::string &str, const PIString &f)
 Возвращает конкатенацию std::string и PIString.
std::ostream & operator<< (std::ostream &s, const PIString &v)
 Записывает PIString в std::ostream.
std::istream & operator>> (std::istream &s, PIString &v)
 Читает из std::istream токен до пробельного символа в PIString.

Подробное описание

Класс строки.

Краткий обзор

Строка состоит из последовательности PIChar. Реальный объем памяти, занимаемый строкой, равен количеству символов * 2. Строка может быть создана из множества типов и преобразована в несколько типов. Имеет множество методов для манипуляций.

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

◆ PIString() [1/6]

PIString::PIString ( const char * str)
inline

Создает строку из C-строки "str" (кодировка системы).

"str" должна заканчиваться нулевым байтом

PIString s("string");
PIString()
Создает пустую строку.
Определения pistring.h:59
return s
Оператор сохранения.
Определения pistring.h:1972

◆ PIString() [2/6]

PIString::PIString ( const wchar_t * str)
inline

Создает строку из wchar_t C-строки "str".

"str" должна заканчиваться нулевым wchar_t

PIString s(L"string");

◆ PIString() [3/6]

PIString::PIString ( const char16_t * str)
inline

Создает строку из char16_t C-строки "str".

"str" должна заканчиваться нулевым char16_t

PIString s(u"string");

◆ PIString() [4/6]

PIString::PIString ( const char * str,
const int len )
inline

Создает строку из "len" символов массива "str" (кодировка системы).

PIString s("string", 3); // s = "str"

◆ PIString() [5/6]

PIString::PIString ( const int len,
const char c )
inline

Создает строку как последовательность длиной "len" символа "c".

PIString s(5, 'p'); // s = "ppppp"

◆ PIString() [6/6]

PIString::PIString ( const int len,
const PIChar c )
inline

Создает строку как последовательность длиной "len" символа "c".

PIString s(5, "№"); // s = "№№№№№"

Методы

◆ begin()

iterator PIString::begin ( )
inline

Итератор на первый элемент.

Возвращает
Итераторы в стиле STL
См. также
end(), rbegin(), rend()

◆ end()

iterator PIString::end ( )
inline

Итератор на элемент, следующий за последним элементом.

Возвращает
Итераторы в стиле STL
См. также
begin(), rbegin(), rend()

◆ rbegin()

reverse_iterator PIString::rbegin ( )
inline

Обратный итератор на первый элемент.

Итератор для прохода массива в обратном порядке. Указывает на последний элемент.

Возвращает
Итераторы в стиле STL
См. также
rend(), begin(), end()

◆ rend()

reverse_iterator PIString::rend ( )
inline

Обратный итератор на элемент, следующий за последним элементом.

Итератор для прохода массива в обратном порядке. Указывает на элемент, предшествующий первому элементу.

Возвращает
Итераторы в стиле STL
См. также
rbegin(), begin(), end()

◆ operator[]()

PIChar & PIString::operator[] ( size_t index)
inline

Полный доступ к символу по индексу index.

Индекс элемента считается от 0. Индекс символа должен лежать в пределах от 0 до size()-1. Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.

◆ at()

const PIChar PIString::at ( size_t index) const
inline

Доступ исключительно на чтение к символу по индексу index.

Индекс символа считается от 0. Индекс символа должен лежать в пределах от 0 до size()-1. Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.

◆ resize()

PIString & PIString::resize ( size_t new_size,
PIChar c = PIChar() )
inline

Устанавливает размер строки, новые символы копируются из c.

Если new_size больше чем текущий размер строки size(), новые символы добавляются в конец строки и создаются из с. Если new_size меньше чем текущий размер строки size(), лишние символы удаляются с конца строки.

См. также
size(), clear()

◆ mid()

PIString PIString::mid ( int start,
int len = -1 ) const

Возвращает подстроку от символа "start" и максимальной длиной "len".

Если "len" < 0 тогда возвращается подстрока от символа "start" и до конца. "start" должен быть >= 0.

PIString s("0123456789");
piCout << s.mid(0, -1); // s = "0123456789"
piCout << s.mid(0, 2); // s = "01"
piCout << s.mid(3); // s = "3456789"
piCout << s.mid(3, 4); // s = "3456"
piCout << s.mid(7, 1); // s = "7"
piCout << s.mid(7, 4); // s = "789"
piCout << s.mid(-1); // s = ""
#define piCout
Макрос для условного (piDebug) вывода в PICout(StdOut).
Определения picout.h:36
См. также
left(), right()

◆ left()

PIString PIString::left ( int len) const
inline

Возвращает подстроку от начала и максимальной длиной "len".

PIString s("0123456789");
piCout << s.left(-1); // s = ""
piCout << s.left(1); // s = "0"
piCout << s.left(5); // s = "01234"
piCout << s.left(15); // s = "0123456789"
См. также
mid(), right()

◆ right()

PIString PIString::right ( int len) const
inline

Возвращает подстроку максимальной длиной "len" и до конца.

PIString s("0123456789");
piCout << s.right(-1); // s = ""
piCout << s.right(1); // s = "9"
piCout << s.right(5); // s = "56789"
piCout << s.right(15); // s = "0123456789"
См. также
mid(), left()

◆ cutMid()

PIString & PIString::cutMid ( int start,
int len )

Удаляет часть строки от символа "start" и максимальной длины "len", возвращает эту строку.

Если "len" < 0 тогда удаляется подстрока от символа "start" и до конца. "start" должен быть >= 0.

PIString s("0123456789");
s.cutMid(1, 3);
piCout << s; // s = "0456789"
s.cutMid(0, 2);
piCout << s; // s = "56789"
s.cutMid(3, -1);
piCout << s; // s = "567"
s.cutMid(-1, -1);
piCout << s; // s = "567"
См. также
cutLeft(), cutRight()

◆ cutLeft()

PIString & PIString::cutLeft ( int len)
inline

Удаляет часть строки от начала и максимальной длины "len", возвращает эту строку.

PIString s("0123456789");
s.cutLeft(1);
piCout << s; // s = "123456789"
s.cutLeft(3);
piCout << s; // s = "456789"
s.cutLeft(30);
piCout << s; // s = ""
См. также
cutMid(), cutRight()

◆ cutRight()

PIString & PIString::cutRight ( int len)
inline

Удаляет часть строки максимальной длины "len" от конца, возвращает эту строку.

PIString s("0123456789");
s.cutRight(1);
piCout << s; // s = "012345678"
s.cutRight(3);
piCout << s; // s = "012345"
s.cutRight(30);
piCout << s; // s = ""
См. также
cutMid(), cutLeft()

◆ trim()

PIString & PIString::trim ( )

Удаляет пробельные символы с начала и конца строки и возвращает эту строку.

Удаляет пробелы, табуляцию, переводы строк и нулевые символы: ' ', '\n', '\r', '\t', '\0'

PIString s(" \t string \n");
s.trim();
piCout << s; // s = "string"
См. также
trimmed()

◆ trimmed()

PIString PIString::trimmed ( ) const

Возвращает копию этой строки без пробельных символов с начала и конца.

PIString s(" \t string \n");
piCout << s.trimmed(); // s = "string"
piCout << s; // s = " string "
См. также
trim()

◆ replace() [1/2]

PIString & PIString::replace ( const int from,
const int count,
const PIString & with )

Заменяет часть строки от символа "from" и максимальной длины "len" строкой "with", возвращает эту строку.

PIString s("0123456789");
s.replace(2, 3, "_cut_");
piCout << s; // s = "01_cut_56789"
s.replace(0, 1, "one_");
piCout << s; // s = "one_1_cut_56789"
См. также
replaced(), replaceAll()

◆ replaced() [1/2]

PIString PIString::replaced ( const int from,
const int count,
const PIString & with ) const
inline

Заменяет часть копии этой строки от символа "from" и максимальной длины "len" строкой "with".

PIString s("0123456789");
piCout << s.replaced(2, 3, "_cut_"); // s = "01_cut_56789"
piCout << s.replaced(0, 1, "one_"); // s = "one_123456789"
См. также
replace(), replaceAll()

◆ replace() [2/2]

PIString & PIString::replace ( const PIString & what,
const PIString & with,
bool * ok = 0 )

Заменяет первую найденную подстроку "what" строкой "with", возвращает эту строку.

Если "ok" не null, то устанавливает в "true" если замена произведена

PIString s("pip string");
bool ok;
s.replace("string", "conf", &ok);
piCout << s << ok; // s = "pip conf", true
s.replace("PIP", "PlInPr", &ok);
piCout << s << ok; // s = "pip conf", false
См. также
replaced(), replaceAll()

◆ replaced() [2/2]

PIString PIString::replaced ( const PIString & what,
const PIString & with,
bool * ok = 0 ) const
inline

Заменяет в копии строки первую найденную подстроку "what" строкой "with".

Если "ok" не null, то устанавливает в "true" если замена произведена.

PIString s("pip string");
bool ok;
piCout << s.replace("string", "conf", &ok); // s = "pip conf", true
piCout << s.replace("PIP", "PlInPr", &ok); // s = "pip string", false
См. также
replaced(), replaceAll()

◆ replaceAll() [1/3]

PIString & PIString::replaceAll ( const PIString & what,
const PIString & with )

Заменяет все найденные подстроки "what" строками "with", возвращает эту строку.

PIString s("substrings");
s.replaceAll("s", "_");
piCout << s; // s = "_ub_tring_"
См. также
replace(), replaced(), replacedAll()

◆ replaceAll() [2/3]

PIString & PIString::replaceAll ( const PIString & what,
const char with )

Заменяет все найденные подстроки "what" символами "with", возвращает эту строку.

PIString s("substrings");
s.replaceAll("s", '_');
piCout << s; // s = "_ub_tring_"
См. также
replace(), replaced(), replacedAll()

◆ replaceAll() [3/3]

PIString & PIString::replaceAll ( const char what,
const char with )

Заменяет все найденные символы "what" символами "with", возвращает эту строку.

PIString s("substrings");
s.replaceAll('s', '_');
piCout << s; // s = "_ub_tring_"
См. также
replace(), replaced(), replacedAll()

◆ replacedAll() [1/3]

PIString PIString::replacedAll ( const PIString & what,
const PIString & with ) const
inline

Заменяет в копии строки все найденные подстроки "what" строками "with".

См. также
replaceAll()

◆ replacedAll() [2/3]

PIString PIString::replacedAll ( const PIString & what,
const char with ) const
inline

Заменяет в копии строки все найденные подстроки "what" символами "with".

См. также
replaceAll()

◆ replacedAll() [3/3]

PIString PIString::replacedAll ( const char what,
const char with ) const
inline

Заменяет в копии строки все найденные символы "what" символами "with".

См. также
replaceAll()

◆ repeat()

PIString & PIString::repeat ( int times)
inline

Повторяет содержимое строки "times" раз и возвращает эту строку.

PIString s(" :-) ");
s.repeat(3);
piCout << s; // :-) :-) :-)
См. также
repeated()

◆ repeated()

PIString PIString::repeated ( int times) const
inline

Возвращает повторённую "times" раз строку.

PIString s(" :-) ");
piCout << s.repeated(3); // :-) :-) :-)
piCout << s; // :-)
См. также
repeat()

◆ insert() [1/5]

PIString & PIString::insert ( const int index,
const PIChar c )
inline

Вставляет символ "c" после позиции "index" и возвращает эту строку.

PIString s("pp");
s.insert(1, "i");
piCout << s; // s = "pip"

◆ insert() [2/5]

PIString & PIString::insert ( const int index,
const char c )
inline

Вставляет символ "c" после позиции "index" и возвращает эту строку.

PIString s("pp");
s.insert(1, 'i');
piCout << s; // s = "pip"

◆ insert() [3/5]

PIString & PIString::insert ( const int index,
const PIString & str )

Вставляет строку "str" после позиции "index" и возвращает эту строку.

PIString s("stg");
s.insert(2, "rin");
piCout << s; // s = "string"

◆ insert() [4/5]

PIString & PIString::insert ( const int index,
const char * c )
inline

Вставляет строку "str" после позиции "index" и возвращает эту строку.

PIString s("stg");
s.insert(2, "rin");
piCout << s; // s = "string"

◆ insert() [5/5]

PIString & PIString::insert ( const int index,
const char16_t * c )
inline

Вставляет строку "str" после позиции "index" и возвращает эту строку.

PIString s("stg");
s.insert(2, u"rin");
piCout << s; // s = "string"

◆ expandRightTo()

PIString & PIString::expandRightTo ( const int len,
const PIChar c )
inline

Увеличивает длину строки до "len" добавлением символов "c" в конец и возвращает эту строку.

PIString s("str");
s.expandRightTo(2, "_");
piCout << s; // s = "str"
s.expandRightTo(6, "_");
piCout << s; // s = "str___"
См. также
expandLeftTo(), expandedRightTo(), expandedLeftTo()

◆ expandLeftTo()

PIString & PIString::expandLeftTo ( const int len,
const PIChar c )
inline

Увеличивает длину строки до "len" добавлением символов "c" в начало и возвращает эту строку.

PIString s("str");
s.expandLeftTo(2, "_");
piCout << s; // s = "str"
s.expandLeftTo(6, "_");
piCout << s; // s = "___str"
См. также
expandRightTo(), expandedRightTo(), expandedLeftTo()

◆ expandedRightTo()

PIString PIString::expandedRightTo ( const int len,
const PIChar c ) const
inline

Увеличивает длину копии этой строки до "len" добавлением символов "c" в конец.

PIString s("str");
piCouy << s.expandedRightTo(5, "_"); // s = "str__"
piCout << s; // s = "str"
См. также
expandRightTo(), expandLeftTo(), expandedLeftTo()

◆ expandedLeftTo()

PIString PIString::expandedLeftTo ( const int len,
const PIChar c ) const
inline

Увеличивает длину копии этой строки до "len" добавлением символов "c" в начало.

PIString s("str");
piCouy << s.expandedLeftTo(5, "_"); // s = "__str"
piCout << s; // s = "str"
См. также
expandRightTo(), expandLeftTo(), expandedRightTo()

◆ quote()

PIString & PIString::quote ( PIChar c = PIChar('"'))
inline

Добавляет символ "c" в начало и конец и возвращает эту строку.

PIString s("str");
s.quote();
piCout << s; // s = ""str""
См. также
quoted()

◆ quoted()

PIString PIString::quoted ( PIChar c = PIChar('"'))
inline

Возвращает копию строки с добавленным в начало и конец символом "c".

PIString s("str");
piCout << s.quoted(); // s = ""str""
piCout << s; // s = "str"
См. также
quote()

◆ reverse()

PIString & PIString::reverse ( )
inline

Разворачивает и возвращает эту строку.

PIString s("0123456789");
s.reverse();
piCout << s; // s = "9876543210"
См. также
reversed()

◆ reversed()

PIString PIString::reversed ( ) const
inline

Разворачивает копию этой строки.

PIString s("0123456789");
piCout << s.reversed(); // s = "9876543210"
piCout << s; // s = "0123456789"
См. также
reverse()

◆ elide()

PIString & PIString::elide ( int size,
float pos = ElideCenter )

Уменьшает строку до размера "size", вставляя ".." в положение "pos" и возвращает эту строку.

См. также
elided()

◆ elided()

PIString PIString::elided ( int size,
float pos = ElideCenter ) const
inline

Уменьшает копию этой строки до размера "size", вставляя ".." в положение "pos".

piCout << PIString("123456789ABCDEF").elided(8, PIString::ElideLeft); // ..ABCDEF
piCout << PIString("123456789ABCDEF").elided(8, PIString::ElideCenter); // 123..DEF
piCout << PIString("123456789ABCDEF").elided(8, PIString::ElideRight); // 123456..
piCout << PIString("123456789ABCDEF").elided(8, 0.25); // 12..CDEF
static const float ElideCenter
Значение для пропуска в середине.
Определения pistring.h:67
static const float ElideLeft
Значение для пропуска слева.
Определения pistring.h:63
static const float ElideRight
Значение для пропуска справа.
Определения pistring.h:71
См. также
elide()

◆ takeMid()

PIString PIString::takeMid ( const int start,
const int len = -1 )
inline

Извлекает часть строки от символа "start" максимальной длины "len" и возвращает её.

PIString s("0123456789");
piCout << s.takeMid(1, 3); // "123"
piCout << s; // s = "0456789"
См. также
takeLeft, takeRight()

◆ takeLeft()

PIString PIString::takeLeft ( const int len)
inline

Извлекает часть строки от начала максимальной длины "len" и возвращает её.

PIString s("0123456789");
piCout << s.takeLeft(3); // "012"
piCout << s; // s = "3456789"
См. также
takeMid(), takeRight()

◆ takeRight()

PIString PIString::takeRight ( const int len)
inline

Извлекает часть строки с конца максимальной длины "len" и возвращает её.

PIString s("0123456789");
piCout << s.takeRight(3); // "789"
piCout << s; // s = "0123456"
См. также
takeMid(), takeLeft()

◆ takeSymbol()

PIString PIString::takeSymbol ( )

Извлекает символ с начала строки и возвращает его как строку.

PIString s("\t ! word");
piCout << s.takeSymbol(); // "!"
piCout << s.takeSymbol(); // "w"
piCout << s.takeSymbol(); // "o"
piCout << s; // "rd"
См. также
takeWord(), takeCWord(), takeLine(), takeNumber(), takeRange()

◆ takeWord()

PIString PIString::takeWord ( )

Извлекает слово с начала строки и возвращает его.

PIString s("some words\nnew line ");
piCout << s.takeWord(); // "some"
piCout << s.takeWord(); // "words"
piCout << s.takeWord(); // "new"
piCout << s; // " line "
См. также
takeSymbol(), takeCWord(), takeLine(), takeNumber(), takeRange()

◆ takeCWord()

PIString PIString::takeCWord ( )

Извлекает слово из букв, цифр и симолов '' с начала строки и возвращает его.

См. также
takeSymbol(), takeWord(), takeLine(), takeNumber(), takeRange()

◆ takeLine()

PIString PIString::takeLine ( )

Извлекает строку текста (до новой строки) с начала строки и возвращает её.

PIString s("some words\nnew line \n\nend");
piCout << s.takeLine(); // "some words"
piCout << s.takeLine(); // "new line "
piCout << s.takeLine(); // ""
piCout << s; // "end"
См. также
takeSymbol(), takeWord(), takeCWord(), takeNumber(), takeRange()

◆ takeNumber()

PIString PIString::takeNumber ( )

Извлекает число в C-формате с начала строки и возвращает его как строку.

PIString s(" 0xFF -99 1.2E+5f 1000L");
piCout << s.takeNumber(); // "0xFF"
piCout << s.takeNumber(); // "-99"
piCout << s.takeNumber(); // "1.2E+5f"
piCout << s.takeNumber(); // "1000L"
piCout << s; // ""
См. также
takeSymbol(), takeWord(), takeCWord(), takeLine(), takeRange()

◆ takeRange()

PIString PIString::takeRange ( const PIChar start,
const PIChar end,
const PIChar shield = '\\' )

Извлекает диапазон между символами "start" и "end" с начала строки и возвращает его.

Символ "shield" экранирует следующий символ

PIString s(" {figures{inside}}");
piCout << s.takeRange('{', '}'); // "figures{inside}"
piCout << s; // ""
s = "\"text\\\"shielded\" next";
piCout << s.takeRange('"', '"'); // "text\"shielded"
piCout << s; // " next"
См. также
takeSymbol(), takeWord(), takeLine(), takeNumber()

◆ inBrackets()

PIString PIString::inBrackets ( const PIChar start,
const PIChar end ) const

Возвращает строку между символами "start" и "end" с начала строки.

PIString s("a(b(c)d)e");
piCout << s.inBrackets('(', ')'); // "b(c)d"
piCout << s; // s = "a(b(c)d)e"

◆ data()

const char * PIString::data ( ) const

Возвращает char * представление строки в системной кодировке.

Этот метод заполняет внутренный байтовый буфер. Размер этого буфера равен количеству символов строки + завершающий байт '\0'. Возвращаемый указатель действителен до следующего вызова этого метода.

piCout << PIString("0123456789").data(); // 0123456789
piCout << PIString("№1").data(); // №1
См. также
dataConsole(), dataUTF8()

◆ dataConsole()

const char * PIString::dataConsole ( ) const

Возвращает char * представление строки в кодировке консоли.

Этот метод заполняет внутренный байтовый буфер. Размер этого буфера равен количеству символов строки + завершающий байт '\0'. Возвращаемый указатель действителен до следующего вызова этого метода.

См. также
data(), dataUTF8()

◆ dataUTF8()

const char * PIString::dataUTF8 ( ) const

Возвращает char * представление строки в кодировке UTF-8.

Этот метод заполняет внутренный байтовый буфер. Размер этого буфера равен количеству символов строки + завершающий байт '\0'. Возвращаемый указатель действителен до следующего вызова этого метода.

См. также
data(), dataConsole()

◆ dataAscii()

const char * PIString::dataAscii ( ) const

Возвращает char * представление строки в кодировке ASCII.

Этот метод заполняет внутренный байтовый буфер. Размер этого буфера равен количеству символов строки + завершающий байт '\0'. Возвращаемый указатель действителен до следующего вызова этого метода.

См. также
dataConsole(), dataUTF8()

◆ split()

PIStringList PIString::split ( const PIString & delim) const

Разделяет строку в PIStringList через разделитель "delim".

PIString s("1 2 3");
piCout << s.split(" "); // {"1", "2", "3"}

◆ find() [1/3]

int PIString::find ( const char c,
const int start = 0 ) const

Ищет символ "c" от символа "start" и возвращает первое вхождение.

PIString s("012345012345");
piCout << s.find('-'); // -1
piCout << s.find('3'); // 3
piCout << s.find('3', 4); // 9
piCout << s.find('3', 10); // -1
См. также
findAny(), findLast(), findAnyLast(), findWord(), findCWord(), findRange()

◆ find() [2/3]

int PIString::find ( const PIString & str,
const int start = 0 ) const

Ищет подстроку "str" от символа "start" и возвращает первое вхождение.

PIString s("012345012345");
piCout << s.find("-"); // -1
piCout << s.find("34"); // 3
piCout << s.find("3", 4); // 9
piCout << s.find("3", 10); // -1
См. также
findAny(), findLast(), findAnyLast(), findWord(), findCWord(), findRange()

◆ find() [3/3]

int PIString::find ( const char * str,
const int start = 0 ) const
inline

Ищет подстроку "str" от символа "start" и возвращает первое вхождение.

PIString s("012345012345");
piCout << s.find("-"); // -1
piCout << s.find("34"); // 3
piCout << s.find("3", 4); // 9
piCout << s.find("3", 10); // -1
См. также
findAny(), findLast(), findAnyLast(), findWord(), findCWord(), findRange()

◆ findAny() [1/2]

int PIString::findAny ( const PIString & str,
const int start = 0 ) const

Ищет любой символ строки "str" от симола "start" и возвращает первое вхождение.

piCout << PIString("1.str").findAny(".,:"); // 1
piCout << PIString("1,str").findAny(".,:"); // 1
piCout << PIString("1:str").findAny(".,:"); // 1
См. также
find(), findLast(), findAnyLast(), findWord(), findCWord(), findRange()

◆ findAny() [2/2]

int PIString::findAny ( const char * str,
const int start = 0 ) const
inline

Ищет любой символ строки "str" от симола "start" и возвращает первое вхождение.

piCout << PIString("1.str").findAny(".,:"); // 1
piCout << PIString("1,str").findAny(".,:"); // 1
piCout << PIString("1:str").findAny(".,:"); // 1
См. также
find(), findLast(), findAnyLast(), findWord(), findCWord(), findRange()

◆ findLast() [1/3]

int PIString::findLast ( const char c,
const int start = 0 ) const

Ищет символ "c" от символа "start" и возвращает последнее вхождение.

PIString s("012345012345");
piCout << s.findLast('-'); // -1
piCout << s.findLast('3'); // 9
piCout << s.findLast('3', 4); // 9
piCout << s.findLast('3', 10); // -1
См. также
find(), findAny(), findAnyLast(), findWord(), findCWord(), findRange()

◆ findLast() [2/3]

int PIString::findLast ( const PIString & str,
const int start = 0 ) const

Ищет подстроку "str" от символа "start" и возвращает последнее вхождение.

PIString s("012345012345");
piCout << s.findLast("-"); // -1
piCout << s.findLast("34"); // 9
piCout << s.findLast("3", 4); // 9
piCout << s.findLast("3", 10); // -1
См. также
find(), findAny(), findAnyLast(), findWord(), findCWord(), findRange()

◆ findLast() [3/3]

int PIString::findLast ( const char * str,
const int start = 0 ) const
inline

Ищет подстроку "str" от символа "start" и возвращает последнее вхождение.

PIString s("012345012345");
piCout << s.findLast("-"); // -1
piCout << s.findLast("34"); // 9
piCout << s.findLast("3", 4); // 9
piCout << s.findLast("3", 10); // -1
См. также
find(), findAny(), findAnyLast(), findWord(), findCWord(), findRange()

◆ findAnyLast() [1/2]

int PIString::findAnyLast ( const PIString & str,
const int start = 0 ) const

Ищет любой символ строки "str" от символа "start" и возвращает последнее вхождение.

piCout << PIString(".str.0").findAnyLast(".,:"); // 4
piCout << PIString(".str,0").findAnyLast(".,:"); // 4
piCout << PIString(".str:0").findAnyLast(".,:"); // 4
См. также
find(), findAny(), findLast(), findWord(), findCWord(), findRange()

◆ findAnyLast() [2/2]

int PIString::findAnyLast ( const char * str,
const int start = 0 ) const
inline

Ищет любой символ строки "str" от символа "start" и возвращает последнее вхождение.

piCout << PIString(".str.0").findAnyLast(".,:"); // 4
piCout << PIString(".str,0").findAnyLast(".,:"); // 4
piCout << PIString(".str:0").findAnyLast(".,:"); // 4
См. также
find(), findAny(), findLast(), findWord(), findCWord(), findRange()

◆ findWord()

int PIString::findWord ( const PIString & word,
const int start = 0 ) const

Ищет слово "word" от симола "start" и возвращает первое вхождение.

PIString s("this is <PIP>");
piCout << s.findWord("this"); // 0
piCout << s.findWord("is"); // 5
piCout << s.findWord("PIP", 4); // -1
piCout << s.findWord("<PIP>", 4); // 8
См. также
find(), findAny(), findLast(), findAnyLast(), findCWord(), findRange()

◆ findCWord()

int PIString::findCWord ( const PIString & word,
const int start = 0 ) const

Ищет C-слово "word" от симола "start" и возвращает первое вхождение.

PIString s("this::is <PIP>");
piCout << s.findCWord("this"); // 0
piCout << s.findCWord("is"); // 6
piCout << s.findCWord("PIP", 4); // 10
piCout << s.findCWord("<PIP>", 4); // 9
См. также
find(), findAny(), findLast(), findAnyLast(), findWord(), findRange()

◆ findRange()

int PIString::findRange ( const PIChar start,
const PIChar end,
const PIChar shield = '\\',
const int start_index = 0,
int * len = 0 ) const

Ищет начало диапазона между символами "start" и "end" от симола "start" и возвращает первое вхождение.

PIString s(" {figures{inside}}");
int len = -1;
piCout << s.findRange('{', '}', '\\', 0, &len) << len << s.mid(2, len); // 2 15 figures{inside}
s = "\"text\\\"shielded\" next";
piCout << s.findRange('"', '"', '\\', 0, &len) << len << s.mid(1, len); // 1 14 text\"shielded
См. также
find(), findAny(), findLast(), findAnyLast(), findWord(), findCWord()

◆ entries() [1/2]

int PIString::entries ( const PIChar c) const

Возвращает число вхождений символа "c".

piCout << PIString(".str.0").entries("."); // 2
piCout << PIString(".str.0").entries("0"); // 1

◆ entries() [2/2]

int PIString::entries ( const PIString & str) const

Возвращает число вхождений строк "str".

piCout << PIString("hello locale").entries("lo"); // 2
piCout << PIString("hello locale").entries("lo lo"); // 1

◆ clear()

void PIString::clear ( )
inline

Очищает строку, строка становится пустой.

Заметки
Зарезервированная память не освободится.
См. также
resize()

◆ toBool()

bool PIString::toBool ( ) const

Возвращает true если строка равна "true", "yes", "on" или числу > 0.

piCout << PIString("true").toBool(); // true
piCout << PIString("Yes").toBool(); // true
piCout << PIString(" TRUE ").toBool(); // true
piCout << PIString(" 1 ").toBool(); // true
piCout << PIString("0").toBool(); // false
piCout << PIString("0.1").toBool(); // true
piCout << PIString("-1").toBool(); // false
piCout << PIString("").toBool(); // false

◆ toShort()

short PIString::toShort ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает short числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toShort(); // 123
piCout << PIString("123").toShort(16); // 291
piCout << PIString("0x123").toShort(); // 291
piCout << PIString("1001").toShort(2); // 9

◆ toUShort()

ushort PIString::toUShort ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает ushort числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toUShort(); // 123
piCout << PIString("123").toUShort(16); // 291
piCout << PIString("0x123").toUShort(); // 291
piCout << PIString("1001").toUShort(2); // 9

◆ toInt()

int PIString::toInt ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает int числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toInt(); // 123
piCout << PIString("123").toInt(16); // 291
piCout << PIString("0x123").toInt(); // 291
piCout << PIString("1001").toInt(2); // 9

◆ toUInt()

uint PIString::toUInt ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает uint числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toUInt(); // 123
piCout << PIString("123").toUInt(16); // 291
piCout << PIString("0x123").toUInt(); // 291
piCout << PIString("1001").toUInt(2); // 9

◆ toLong()

long PIString::toLong ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает long числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toLong(); // 123
piCout << PIString("123").toLong(16); // 291
piCout << PIString("0x123").toLong(); // 291
piCout << PIString("1001").toLong(2); // 9

◆ toULong()

ulong PIString::toULong ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает ulong числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toULong(); // 123
piCout << PIString("123").toULong(16); // 291
piCout << PIString("0x123").toULong(); // 291
piCout << PIString("1001").toULong(2); // 9

◆ toLLong()

llong PIString::toLLong ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает llong числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toLLong(); // 123
piCout << PIString("123").toLLong(16); // 291
piCout << PIString("0x123").toLLong(); // 291
piCout << PIString("1001").toLLong(2); // 9

◆ toULLong()

ullong PIString::toULLong ( int base = -1,
bool * ok = 0 ) const
inline

Возвращает ullong числовое значение строки по основанию "base".

Если "base" < 0 тогда основание автоматически принимается 16 если строка начинается с "0x", иначе 10.

piCout << PIString("123").toULLong(); // 123
piCout << PIString("123").toULLong(16); // 291
piCout << PIString("0x123").toULLong(); // 291
piCout << PIString("1001").toULLong(2); // 9

◆ toFloat()

float PIString::toFloat ( ) const

Возвращает float числовое значение строки.

piCout << PIString("123").toFloat(); // 123
piCout << PIString("1.2E+2").toFloat(); // 120
piCout << PIString("0.01").toFloat(); // 0.01

◆ toDouble()

double PIString::toDouble ( ) const

Возвращает double числовое значение строки.

piCout << PIString("123").toDouble(); // 123
piCout << PIString("1.2E+2").toDouble(); // 120
piCout << PIString("0.01").toDouble(); // 0.01

◆ toLDouble()

ldouble PIString::toLDouble ( ) const

Возвращает ldouble числовое значение строки.

piCout << PIString("123").toLDouble(); // 123
piCout << PIString("1.2E+2").toLDouble(); // 120
piCout << PIString("0.01").toLDouble(); // 0.01

◆ setNumber() [1/11]

PIString & PIString::setNumber ( const short value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [2/11]

PIString & PIString::setNumber ( const ushort value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [3/11]

PIString & PIString::setNumber ( const int value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [4/11]

PIString & PIString::setNumber ( const uint value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [5/11]

PIString & PIString::setNumber ( const long value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [6/11]

PIString & PIString::setNumber ( const ulong value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [7/11]

PIString & PIString::setNumber ( const llong & value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [8/11]

PIString & PIString::setNumber ( const ullong & value,
int base = 10,
bool * ok = 0 )
inline

Устанавливает содержимое строки в текстовое представление "value" по основанию "base" и возвращает эту строку.

s.setNumber(123);
piCout << s; // 123
s.setNumber(123, 16);
piCout << s; // 7B

◆ setNumber() [9/11]

PIString & PIString::setNumber ( const float value,
char format = 'f',
int precision = 8 )
inline

Устанавливает содержимое строки в текстовое представление "value" в формате "format" и точностью "precision" и возвращает эту строку.

s.setNumber(12.3);
piCout << s; // 12.30000000
s.setNumber(12.3, 'f', 3);
piCout << s; // 12.300
s.setNumber(12.123456, 'f', 3);
piCout << s; // 12.123
s.setNumber(123456789., 'g', 2);
piCout << s; // 1.2e+08
s.setNumber(123456789., 'f', 0);
piCout << s; // 123456789

◆ setNumber() [10/11]

PIString & PIString::setNumber ( const double & value,
char format = 'f',
int precision = 8 )
inline

Устанавливает содержимое строки в текстовое представление "value" в формате "format" и точностью "precision" и возвращает эту строку.

s.setNumber(12.3);
piCout << s; // 12.30000000
s.setNumber(12.3, 'f', 3);
piCout << s; // 12.300
s.setNumber(12.123456, 'f', 3);
piCout << s; // 12.123
s.setNumber(123456789., 'g', 2);
piCout << s; // 1.2e+08
s.setNumber(123456789., 'f', 0);
piCout << s; // 123456789

◆ setNumber() [11/11]

PIString & PIString::setNumber ( const ldouble & value,
char format = 'f',
int precision = 8 )
inline

Устанавливает содержимое строки в текстовое представление "value" в формате "format" и точностью "precision" и возвращает эту строку.

s.setNumber(12.3);
piCout << s; // 12.30000000
s.setNumber(12.3, 'f', 3);
piCout << s; // 12.300
s.setNumber(12.123456, 'f', 3);
piCout << s; // 12.123
s.setNumber(123456789., 'g', 2);
piCout << s; // 1.2e+08
s.setNumber(123456789., 'f', 0);
piCout << s; // 123456789

◆ setReadableSize()

PIString & PIString::setReadableSize ( llong bytes)

Устанавливает содержимое в строку с читаемым размером B/KiB/MiB/GiB/TiB/PiB.

См. также
PIString::readableSize()

Пример:

s.setReadableSize(512);
piCout << s; // 512 B
s.setReadableSize(5120);
piCout << s; // 5.0 KiB
s.setReadableSize(512000);
piCout << s; // 500.0 KiB
s.setReadableSize(5120000);
piCout << s; // 4.8 MiB
s.setReadableSize(512000000);
piCout << s; // 488.2 MiB
s.setReadableSize(51200000000);
piCout << s; // 47.6 GiB

◆ arg() [1/3]

PIString & PIString::arg ( const PIString & v)

Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.

piCout << PIString("color %1 is not %2, but %1").arg("red").arg("green"); // color red is not green, but red

◆ arg() [2/3]

PIString & PIString::arg ( int v,
int base = 10 )
inline

Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.

piCout << PIString("ten = %1").arg(10); // ten = 10
piCout << PIString("'%1' is max hex letter (%2 in dec)").arg(0xF, 16).arg(0xF); // 'F' is max hex letter (15 in dec)

◆ arg() [3/3]

PIString & PIString::arg ( double v,
char format = 'f',
int precision = 8 )
inline

Заменяет все вхождения типа "%1", "%2", ... с наименьшим значением на "v" и возвращает эту строку.

piCout << PIString("light speed = %1 %2").arg(M_LIGHT_SPEED, 'g', 4).arg("m/s"); // light speed = 2.998e+08 m/s
#define M_LIGHT_SPEED
Скорость света в вакууме
Определения pimathbase.h:118

◆ fromNumber() [1/11]

PIString PIString::fromNumber ( const short value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B
static PIString fromNumber(const short value, int base=10, bool *ok=0)
Возвращает строковое представление числа "value" по основанию "base".
Определения pistring.h:1776

◆ fromNumber() [2/11]

PIString PIString::fromNumber ( const ushort value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [3/11]

PIString PIString::fromNumber ( const int value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [4/11]

PIString PIString::fromNumber ( const uint value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [5/11]

PIString PIString::fromNumber ( const long value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [6/11]

PIString PIString::fromNumber ( const ulong value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [7/11]

PIString PIString::fromNumber ( const llong & value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [8/11]

PIString PIString::fromNumber ( const ullong & value,
int base = 10,
bool * ok = 0 )
inlinestatic

Возвращает строковое представление числа "value" по основанию "base".

piCout << PIString::fromNumber(123, 16); // 7B

◆ fromNumber() [9/11]

PIString PIString::fromNumber ( const float value,
char format = 'f',
int precision = 8 )
inlinestatic

Возвращает строковое представление числа "value" в формате "format" и точностью "precision".

piCout << PIString::fromNumber(12.3); // 12.30000000
piCout << PIString::fromNumber(12.3, 'f', 3); // 12.300
piCout << PIString::fromNumber(12.123456, 'f', 3); // 12.123
piCout << PIString::fromNumber(123456789., 'g', 2); // 1.2e+08
piCout << PIString::fromNumber(123456789., 'f', 0); // 123456789

◆ fromNumber() [10/11]

PIString PIString::fromNumber ( const double & value,
char format = 'f',
int precision = 8 )
inlinestatic

Возвращает строковое представление числа "value" в формате "format" и точностью "precision".

piCout << PIString::fromNumber(12.3); // 12.30000000
piCout << PIString::fromNumber(12.3, 'f', 3); // 12.300
piCout << PIString::fromNumber(12.123456, 'f', 3); // 12.123
piCout << PIString::fromNumber(123456789., 'g', 2); // 1.2e+08
piCout << PIString::fromNumber(123456789., 'f', 0); // 123456789

◆ fromNumber() [11/11]

PIString PIString::fromNumber ( const ldouble & value,
char format = 'f',
int precision = 8 )
inlinestatic

Возвращает строковое представление числа "value" в формате "format" и точностью "precision".

piCout << PIString::fromNumber(12.3); // 12.30000000
piCout << PIString::fromNumber(12.3, 'f', 3); // 12.300
piCout << PIString::fromNumber(12.123456, 'f', 3); // 12.123
piCout << PIString::fromNumber(123456789., 'g', 2); // 1.2e+08
piCout << PIString::fromNumber(123456789., 'f', 0); // 123456789

◆ readableSize()

PIString PIString::readableSize ( llong bytes)
static

Возвращает строку с читаемым размером B/KiB/MiB/GiB/TiB/PiB.

См. также
PIString::setReadableSize()

Пример:

piCout << PIString::readableSize(512); // 512 B
piCout << PIString::readableSize(5120); // 5.0 KiB
piCout << PIString::readableSize(512000); // 500.0 KiB
piCout << PIString::readableSize(5120000); // 4.8 MiB
piCout << PIString::readableSize(512000000); // 488.2 MiB
piCout << PIString::readableSize(51200000000); // 47.6 GiB
static PIString readableSize(llong bytes)
Возвращает строку с читаемым размером B/KiB/MiB/GiB/TiB/PiB.
Определения pistring.cpp:456

◆ swap()

void PIString::swap ( PIString & str)
inline

Меняет строку str с этой строкой.

Эта операция выполняется мгновенно без копирования памяти и никогда не дает сбоев.

◆ versionCompare()

int versionCompare ( const PIString & v0,
const PIString & v1,
int components )
related

Сравнивает две строки с версиями в произвольной форме и возвращает 0, -1 или 1.

Этот метод разбирает версии на числовые части и метку. Затем сравнивает не более чем "components" частей. Если различий нет, то сравниваются метки. Каждой метке соответствует своё значение так, что "prealpha" < "alpha" < "prebeta" < "beta" < "rc[N]" < "" < "r[N]". Пример:

piCout << versionCompare("1.0.0_rc2-999", "1.0.1_rc2-999"); // -1, <
piCout << versionCompare("1.0.0", "0.9.2"); // 1, >
piCout << versionCompare("1.0.0_r1", "1.0.0"); // 1, >
piCout << versionCompare("1.0.0_r1", "1.0.0", 3); // 0, =
piCout << versionCompare("1.0.0_r2", "1.0.0", 3); // 0, =
piCout << versionCompare(".2-alpha", "0.2_alpha"); // 0, =
piCout << versionCompare("1_prebeta", "1.0_alpha"); // 1, >
int versionCompare(const PIString &v0, const PIString &v1, int components)
Сравнивает две строки с версиями в произвольной форме и возвращает 0, -1 или 1.
Определения pistring.cpp:1982
Возвращает
  • 0 - равны
  • 1 - v0 > v1
  • -1 - v0 < v1

◆ versionNormalize()

PIString versionNormalize ( const PIString & v)
related

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

Разбирает версию по описанию versionCompare() и возвращает классическое представление версии и метки: major.minor.revision[-build][_label]. Пример:

piCout << versionNormalize(""); // 0.0.0
piCout << versionNormalize("1"); // 1.0.0
piCout << versionNormalize("1.2"); // 1.2.0
piCout << versionNormalize("1.2.3"); // 1.2.3
piCout << versionNormalize("1.2+rc1.99"); // 1.2.99_rc1
piCout << versionNormalize("1.2-alpha"); // 1.2.0_alpha
piCout << versionNormalize("1..4_rc2-999"); // 1.0.4-999_rc2
PIString versionNormalize(const PIString &v)
Преобразует строку с версией в произвольной форме к классическому виду.
Определения pistring.cpp:2030