Зачем нужно данное условие? Дан код функции 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.

21 Авг 2019 в 06:23
235 +1
0
Ответы
1

Это условие проверяет, что найдено вхождение строки t в строку s (k > 0) и что строка t завершается нулевым символом (t[k] == '\0'). Это необходимо для точного определения того, что вхождение найдено полностью, а не просто часть строки t совпадает с частью строки s. Таким образом, это условие гарантирует, что найденное вхождение строки t в строку s будет последним вхождением и позволяет правильно определить его позицию в строке s.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 835 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир