@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" это окончание строки, т.е это символ которым всегда без исключений заканчивается строка.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы