Skip to content

p0rtale/cpp-hw1-VK-EDU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UString

Задание

Напишите аналог std::string, но предполагающий, что внутри - UTF-8. Соответственно, нужно будет добавить/исправить методы:

  1. length() - число U8-символов
  2. push_back(unsigned int) - добавляет юникод по codepoint
  3. pop_back() - должен удалять последний символ (а не байт)
  4. is_well() - проверяет, является ли utf-8 строка корректной
  5. Итераторы - ходят по utf-8 символам

Проектирование

  • Для хранения байтов и доступа к ним используется std::string.
  • Корректность строки нужно проверять только при конструировании от std::string/char*, а также при операциях с ними.
  • При обращении по индексу возвращается utf-8 символ в виде uchar=std::string.
  • Кроме push_back(unsigned int) есть также push_back(uchar), добавляющий юникод, который хранится в uchar.

Сборка и тесты

Сборка

cmake . -Bbuild
cd build
make

Запуск юнит-тестов

make test

или

./tests/ustring_tests

Запуск интеграционных тестов

Запуск в корне:

python3 tests/integr/ustring_test.py -p build/exe/ustring

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •