У меня есть двумерный массив, содержащий реальные слова одинаковой длины (словарь). У меня также есть 2D-массив строк (в основном мусор, с некоторыми реальными словами). Я пытаюсь найти настоящие слова во втором массиве с помощью strcmp. Как только найдено реальное слово (strcmp = 0), я хочу скопировать это слово в новый массив двухмерных строк с именем actual_words
, а затем распечатать его.
Однако мой, похоже, просто печатает Words which are viable:
и никаких реальных слов ... хотя ошибок нет.
Все строки заканчиваются нулем.
void check_dictionary (char equal_length_dictionary[MAX_WORDS][MAX_WORD_LENGTH], char nextword[MAX_WORDS][MAX_WORD_LENGTH])
{
int arr, dict;
char actual_words[MAX_WORDS][MAX_WORD_LENGTH];
printf("\nWords which are viable: \n");
for (dict = 0; equal_length_dictionary[dict][0] != '\0'; dict++)
{
//look through each word in dictionary
for (arr = 0; nextword[arr][0] != '\0'; arr++)
//look through each word in the array
{
if ((strcmp(equal_length_dictionary[arr], nextword[arr])) == 0)
//test for differences between dictionary and word
{
strcpy(actual_words[arr], nextword[arr]);
//if no differences, copy words
printf("%s ", actual_words[arr]);
}
}
}
printf("\n");
}
strncmp
иstrncpy
) - person alain   schedule 11.11.2015strncpy
, так как он не всегда может завершать строку нулем. - person Some programmer dude   schedule 11.11.2015