У меня есть словарь слов, хранящихся в массиве 2D-символов. У меня также есть отсканированное слово, хранящееся в структуре. Я пытаюсь «уменьшить» мой основной словарь, копируя слова длины, равные сканируемому слову, в отдельный 2D-массив. Затем я хочу напечатать новый массив.Копирование строк равной длины в новую строковую строку
i.e если отсканированное слово = hello
, все слова той же длины будут скопированы в новый массив.
Мой код просто печатает первое слово массива бесконечно
words.startword
является отсканированное слово.
void get_equal_length (char equal_length_dictionary[MAX_WORDS][MAX_WORD_LENGTH], char dictionary[MAX_WORDS][MAX_WORD_LENGTH], Scanned_words words)
{
int i, word_count = 0;
for (i = 0; dictionary[i] != '\0'; i++)
{
if (strlen(*dictionary) == strlen(words.startword))
{
strcpy(*equal_length_dictionary, *dictionary);
word_count++;
printf("Word #%d: %s\n", word_count, *equal_length_dictionary);
}
}
printf("Equal length words: %d\n", word_count);
}
Каковы ваши флагов для компилятора? Вы должны получать предупреждение/ошибку в словаре [i]! = '\ 0'', сравнивая «char *» с программой 'char' – Kevin
gcc -Wall -Werror -Wextra -std = c99 -pedantic. c " –
Также вы никогда не используете' i' в своем цикле, что должно быть подсказкой к решению. – Kevin