Класс для работы со строками. Поддерживает срезы, поиск, разделение и конкатенацию.
String()— пустая строка.String(const char* text)— из C-строки.String(const std::string& s)— изstd::string.String(const char32_t* text)— из UTF-32.String(char32_t c)— из символа.String(long double number)— изlong double.String(long long number)— изlong long.String(unsigned long long number)— изunsigned long long.String(int number)— изint.
c_str()— C-строка.Split(const String& delim = " ")— делит по символу.Strip()— убирает пробелы.IsNumber()— проверяет, число ли.Find(String c, start)— ищет подстроку.Substr(start, size)— подстрока.Size()— длина.ToDouble()— вdouble.ToInt()— вint.GetHash()— хэш строки.
[]— символ или срез черезRange.()— срез, какSubstr.+,+=— конкатенация.==,!=,>,<,>=,<=— сравнение (по длине для>,<,>=,<=).
#include "cs/types.h"
int main() {
String s = "Привет, мир!";
std::cout << s.Split(); // ["Привет,", "мир!"]
print(s[0]); // П
std::cout << s(7, 5) << '\n'; // мир!
std::cout << String(42).ToInt() << '\n'; // 42
std::cout << s.Strip().IsNumber() << '\n'; // false
}- UTF-8 через
char32_t. - Срезы:
Substr,[],(). Split— только один символ.- Windows: настрой UTF-8 ввод (
system("chcp 65001 > nul")).