LINUX.ORG.RU

История изменений

Исправление 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.

А вдруг я, например, просто хочу показать в поле определённой ширины ту часть строки, которая туда помещается, или, например, разбиваю строку на отдельные строки по ширине экрана?

Разбивание по пробелам будет нормально работать. А вообще для переносов есть отдельные библиотеки.