Ввести строку и слово, удалить все вхождения слова и вывести строку
#include <stdio.h>
#define MAXLINE 1000
#define MAXWORD 100
void copy(char to[], char from[]);
int main()
{
int c, i=0, n, j=0, m, k ;
char str[MAXLINE];
char slv[MAXWORD];
char nov[MAXLINE];
int l=0;
k=0;
printf("Enter word:\n");
for (i=0; i<(MAXWORD-1) && (c=getchar()) != EOF && c != '\n'; i++)
{
slv[i]=c;
k++;
}
printf("Enter text:\n");
for (i=0; i<(MAXLINE-1) && (c=getchar())!= EOF && c != '\n'; i++)
{
str[i]=c;
l++;
}
int flag2 = 0;
int flag1 = 0;
int s = 0;
for (i=0; i<l-1; i++)
{
if ((flag1 = 0) || (str[i] = ' '))
{
int beg1 = i;
int beg2 = i;
int beg3 = i;
int beg4 = i;
int flag1 = 1;
while (str[beg1] !=' ')
{
int beg;
if (str[beg2] != slv[beg]) {flag2 = 1;}
if (beg == k) {break;}
beg2++;
beg++;
}
if (flag2 = 1)
{
while (str[beg3] !=' ')
{
int beg;
nov[s] = slv[beg];
s++;
beg++;
}
}
nov[s+1] = '\0';
for(i = 0 ; i < s; i++)
{
printf("%c",nov[s]);
}
}
}
}
Не работает, не получается у меня эта программа. Написать её нужно без string...
Суть алгоритма: просматриваем все слова, начиная с пробела или начала строки. Если есть несовпадения, записать слово в новый массив. Мой код ничего не выводит. Наверное, нужно указатели использовать, но я не знаю, как.