История изменений
Исправление X512, (текущая версия) :
Например, для проверки есть ли в начале или конце строки соответствующая подстрока.
Всё это прекрасно работает с UTF-8.
bool BeginWith(const char *src, const char *pat)
{
size_t i;
i = 0;
while (src[i] != '\0' && pat[i] != '\0' && src[i] == pat[i]) i++;
return pat[i] == '\0';
}
А вдруг я, например, просто хочу показать в поле определённой ширины ту часть строки, которая туда помещается, или, например, разбиваю строку на отдельные строки по ширине экрана?
Разбивание по пробелам будет нормально работать. А вообще для переносов есть отдельные библиотеки. В общем случае это нетривиальная задача и для некоторых языков требуется разбор грамматики.
Исправление X512, :
Например, для проверки есть ли в начале или конце строки соответствующая подстрока.
Всё это прекрасно работает с UTF-8.
bool BeginWith(const char *src, const char *pat)
{
size_t i;
i = 0;
while (src[i] != '\0' && pat[i] != '\0' && src[i] == pat[i]) i++;
return pat[i] == '\0';
}
А вдруг я, например, просто хочу показать в поле определённой ширины ту часть строки, которая туда помещается, или, например, разбиваю строку на отдельные строки по ширине экрана?
Разбивание по пробелам будет нормально работать. А вообще для переносов есть отдельные библиотеки.
Исходная версия X512, :
Например, для проверки есть ли в начале или конце строки соответствующая подстрока.
Всё это прекрасно работает с UTF-8.
А вдруг я, например, просто хочу показать в поле определённой ширины ту часть строки, которая туда помещается, или, например, разбиваю строку на отдельные строки по ширине экрана?
Разбивание по пробелам будет нормально работать. А вообще для переносов есть отдельные библиотеки.