У меня есть строка слов, между которыми есть разделитель слов, в другой строке я хочу поместить слова основной строки, но одно за другим, сравнить слово с какой-то другой строкой и поместить ее в массив строк.
Так что в основном у меня есть
1) массив слов, и
2) цепочка слов
которые находятся в форме (слово-слово-слово ...), и мне нужно проверить, входит ли одно из этих слов в массив слов. Если да, то удалите его.
Я собираюсь сделать это, определив новую переменную типа 'char', пройдя по моему основному предложению и, пока я не дошел до разделителя слов, я добавляю слово в новую строку. Используя другую функцию, я проверяю, существует ли эта строка из одного слова в массиве. Если нет, я добавляю слово во временный массив, затем освобождаю строку и повторяю до конца предложения. но я, кажется, не могу сделать это правильно (я только начал изучать эту тему символов, массивов символов и т. д.)
void delete_words(char *words[],int n, char *sentence ){
int m=strlen(sentence);
char tmp[m];
char * str=(char*)malloc(sizeof(char)*(MAX_LEN));
int i=0,end=0,k,z;
for(k=0; k<m; k++)
{
z=0;
while(*sentence && sentence[i]!= WORD_SEPERATOR)
{
str[z]=sentence[i];
i++;
z++;
}
if(is_string_in_array(words,n,str)==false)
{
int len=strlen(str);
strcpy(tmp+k,str);
end=end+len;
tmp[end]=WORD_SEPERATOR;
free(str);
}}
Я понимаю, что это совершенно неправильно, и я могу найти некоторые ошибки, но я не знаю, как это исправить, потому что, как я уже сказал, это моя первая домашняя работа по этому вопросу. буду очень благодарен за помощь!