Удаление слов в массиве символов (С)
Есть код, который должен удалять слова из строки. Проблема в том что если например вводить строку: pop this word pop pop pop pop, он должен оставить только: this word, но он не удаляет последнее слово и оставляет его и получается: this word pop. Если в конце добавлять пробел то будут удаляться все слова. Использовать другие функции нельзя.
Вот сам код:
#include <stdio.h>
int len(char *word)
{
int len = 0;
while (word[len] != '\n') len++;
return len;
}
void remove_w(char *line, char *word)
{
int item = 1;
for (int i = 0; line[i] != '\n'; i++)
{
if (line[i] != ' ')
{
if (line[i] == word[item]) item++;
if ((line[i+1] == '\n' || line[i+1] == 0) && len(word) == item) line[len(line) - item - 1] = 0;
}
else
{
if (len(word) == item)
{
int s = 0;
while (s < item + 1)
{
for (int k = i - item; k < len(line) - 1; k++)
{
char tmp = line[k];
line[k] = line[k+1];
line[k+1] = tmp;
}
s++;
}
line[len(line) - item - 1] = 0;
if (item != 0) i -= (item + 1);
}
item = 0;
}
}
}
int main()
{
char line[10000];
char word[100];
fgets(line, 10000, stdin);
fgets(word, 100, stdin);
remove_w(line, word);
printf("%s", line);
}