Мне нужно написать функцию, которая принимает 2 двойных указателя (оба типа char). Первый двойной указатель имеет строку значений запроса, а второй имеет стоп-слова. Идея состоит в том, чтобы исключить стоп-слова из строки запроса и вернуть все слова без этих стоп-слов.Хотите передать один указатель на указатель с двойной указатель
Например
Input - запрос: «в» и «новый», «магазин», «в», «SF»
stopwords: “the”, “in”
ВЫВОД новый магазин SF
Я написал следующий код при попытке использовать strtok, который принимает только одиночные указатели на типы char. Как получить доступ к содержимому двойного указателя?
Благодаря
#include <stdio.h>
void remove_stopwords(char **query, int query_length, char **stopwords, int stopwords_length) {
char *final_str;
final_str = strtok(query[0], stopwords[0]);
while(final_str != NULL)
{
printf("%s\n", final_str);
final_str = strtok(NULL, stopwords);
}
}
Вы также можете сделать это следующим образом: 'final_str = strtok (* query, * stopwords);' и 'final_str = strtok (NULL, * stopwords);' в случае strtok как отдыха описано в ответах – 0decimal0
@PHIfounder: ваш предложенный вызов strtok разделил бы первую строку в массиве 'query', используя буквы в первой строке массива' stopwords' в качестве разделителей, что я не думаю, что это намерение OP. – Simon
@Simon Вот почему я написал это как комментарий. – 0decimal0