Files
snipplib/examples/str_exam.cpp
Timur A. Fatkhullin 700d5bed10 ...
2026-06-27 00:00:54 +03:00

91 lines
2.8 KiB
C++

#include <list>
#include <print>
// #include "../utils/snplib_string.h"
// #include "../include/snipplib/snplib_string.h"
#include <snipplib/utils/snplib_keyvalue.h>
#include <snipplib/utils/snplib_string.h>
using namespace snplib;
int main()
{
std::string si = " dewf wek e lwekjflkj ";
std::println("s = '{}'", si);
auto s = snplib_trim_spaces(si);
std::println("s = '{}'", s);
auto sv = snplib_trim_spaces_as_view(si, TrimType::TRIM_LEFT);
std::println("sv(TrimType::TRIM_LEFT) = '{}'", sv);
sv = snplib_trim_spaces_as_view(si, TrimType::TRIM_RIGHT);
std::println("sv(TrimType::TRIM_RIGHT) = '{}'", sv);
sv = snplib_trim_spaces_as_view(si, TrimType::TRIM_BOTH);
std::println("sv(TrimType::TRIM_BOTH) = '{}'", sv);
const char cstr[] = " dwelkj 3827 dwjh 2398 ";
std::println("C-ish string: '{}'", cstr);
std::println("C-ish(TrimType::TRIM_BOTH) = '{}'", snplib_trim_spaces_as_view(cstr));
std::list ll{' ', ' ', '2', ' ', 'e', '4', 's', ' ', ' '};
std::println("std::list: {}", ll);
std::println("std::ranges::subrange(TrimType::TRIM_BOTH) = '{}'", snplib_trim_spaces_as_view(ll));
// std::println("std::ranges::subrange(TrimType::TRIM_BOTH) = '{}'",
// std::views::all(snplib_trim_spaces_as_view(ll)));
si = "123; we; d34534; ";
std::vector<std::string_view> rv;
rv = snplib_split_char_range<decltype(rv)>(si, "; ");
std::println("\n\nstr = '{}'", si);
std::print("all elems: ");
for (auto& el : rv) {
std::print("'{}' ", el);
}
std::println("");
rv = snplib_split_char_range<decltype(rv)>(si, "; ", 1, 2);
std::print("2 elems starting from 1: ");
for (auto& el : rv) {
std::print("'{}' ", el);
}
std::println("");
si = " ATTR AAA 1.1 23 45 09 ";
std::vector v{std::from_range, si};
ll = {std::from_range, si};
snplib_keyvalue_t kv{v};
std::println("\n\nKV = {}", v);
std::println("key = '{}'", kv.key());
std::println("value = '{}'", kv.value());
std::println("valueSeq = '{}'", kv.valueSeq());
std::println("valueSeq(4,2) = '{}'", kv.valueSeq(4, 2));
std::println("valueJoinSeq = '{}'", kv.valueJoinSeq<std::string_view>(3, 3));
std::println("valueJoinSeq = '{}'", kv.valueJoinSeq<std::string_view>(3, 30));
kv.setKeyValue("VAL", std::make_tuple(1, std::string{"RRR"}, 10.24));
std::println("\n\nKV = {}", v);
snplib_keyvalue_t kvl{ll};
std::println("\n\nKV = {}", ll);
std::println("key = '{}'", kvl.key());
std::println("key = '{}'", kvl.key<std::string>());
std::println("value = '{}'", kvl.value());
std::println("valueSeq = '{}'", kvl.valueSeq());
std::println("valueSeq(4,2) = '{}'", kvl.valueSeq(4, 2));
std::println("valueSeq = '{}'", kvl.valueSeq<std::list<std::string>>());
return 0;
}