Задание: "С клавиатуры ввести предложение. Удалить из него все слова, в которых нет указанной буквы.".
Не могу никак переделать функцию remove_words (она удаляет все слова в которых ЕСТЬ указанная буква, а надо наоборот).
Что и как переделать?
Вот мой код:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define MAX_SIZE 100
char* remove_words(char* s, int c);
int main()
{
char s[MAX_SIZE];
char c;
printf("Enter string: ");
gets_s(s);
printf("Enter letter: ");
scanf_s("%c", &c);
puts(remove_words(s, c));
return 0;
}
char* remove_words(char* s, int c) {
int g;
char* i, * p, * t = s;
for (p = s; *s; *s = *p) {
if (!isspace(*p)) {
i = p;
g = 0;
while (*i && !isspace(*i)) {
if (*i == c)
g = 1;
++i;
}
if (g)
p = i;
else {
while (p != i)
*s++ = *p++;
}
}
else
++s, ++p;
}
return t;
}
P.S.
Я уже понял, что нужно
if (*i == c)
==>
if (*i != c)
, и, скорее всего, переделать вот этот участок:
if (g)
p = i;
else {
while (p != i)
*s++ = *p++;
}
}
else
++s, ++p;
}
return t;
Но что бы я не пробовал, ничего не помогает.