Количество символов в строке (UTF-8)
- #include <iostream>
- #include <locale>
- #include <cstring>
- using namespace std;
- int getStrLen(char *arr) {
- mbstate_t state = mbstate_t();//locale state
- const char* ptr = arr;
- const char* end = ptr + strlen(ptr);
- int len, size = 0;
- wchar_t wc;
- while((len = mbrtowc(&wc, ptr, end-ptr, &state)) > 0) ptr += len, size++;
- return size;
- }
- char *test = "Текст1";
- std::cout << getStrLen(test); // 6
- std::cout << strlen(test); // стандартная фенкция: 11