@OneZeroIsTwo

Зачем нужно данное условие?

Дан код функции
int strindex(char s[], char t[]) {
	int i, j, k, pos;
	pos = -1;
	i = j = k = 0;

	for (i = 0; s[i] != '\0'; i++) {
		for (j = i, k = 0; t[k] != '\0' && t[k] == s[j]; k++, j++)
			;
		if (k > 0 && t[k] == '\0')
			pos = i;
	}
	
	return pos;
}


Это функция берет две строки s и t и ищет самое правое вхождение строки t в s.
Собственно, вопрос заключается в том, зачем нужно данное условие
if (k > 0 && t[k] == '\0')
	pos = i;

Если t[k] == '\0', то это же изначально подразумевает то, что k > 0.
  • Вопрос задан
  • 236 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Почему? В строке нулевой длины t[0] == 0
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Это конец искомой подстроки строки - означает что найдено совпадение. k>0 это значит что строка не нулевой длинны, в ней есть хотя бы 1 символ .
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ZZahar
Если решил проблему - нажми "отметить решением"
Символ "\0" это окончание строки, т.е это символ которым всегда без исключений заканчивается строка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы