Вы должны использовать массив указателей для инициализации не работающей части.Это должно быть похоже на char *words[] = {"word1", "word2"} ;
Это исправляет нерабочую часть, но не могли бы вы немного рассказать о вашем вопросе
Edit1: Это пример кода:
#include <stdio.h>
int main(char argc,char *argv[])
{
char *words[2] = {"test","word"};
printf("words[1] = %s , words[2] = %s \n", words[0], words[1]);
return 0;
}
Этот код возвращает вывод:
words [1] = test, words [2] = word
Можете ли вы опубликовать свое сообщение об ошибке / какой компилятор вы используете, какую платформу?
Edit2:
Поскольку у вас есть слова в виде массива указателей, вы должны правильно проверить их в strstr, если вы собираетесь их использовать.
Вот пример:
#include <stdio.h>
int main(int argc, char *argv[])
{
char str1[] = "practice makes perfect";
char *str2[2] = {"practice", "perfect"};
char* ptr1;
char *ptr2;
ptr1 = strstr(str1, str2[0]);
ptr2 = strstr(str1, str2[1]);
if (ptr1 != NULL ) {
printf("String %s found in %s\n",str2[0], str1);
} else
printf("String not found\n");
if (ptr2 != NULL) {
printf("String %s found in %s\n", str2[1], str1);
} else
printf("String not found\n");
return 0;
}
Output:
String practice found in practice makes perfect
String perfect found in practice makes perfect