Например, у меня есть индексный текстовый файл, содержащий более 400 английских слов, а затем у меня есть другой текстовый файл с расшифрованным текстом в каждой строке.
Я хочу проверить каждое английское слово в моем индексном файлес каждой строкой моего расшифрованного текстового файла (таким образом, проверяя соответствие 400+ английских слов на соответствие строке расшифрованного текста)
Я думал об использовании strncmp(decryptedString, indexString, 10)
, потому что я знаю, что strncmp завершается, если следующий символ NULL
.
Каждая строка моего расшифрованного текстового файла имеет длину 352 символа, и там хранится ~ 40 миллионов строк текста (каждая строка получается из другого вывода).
Эторасшифровать шифр playfair;Я знаю, что мой алгоритм расшифровки работает, потому что мой профессор дал нам пример для тестирования нашей программы, и он работал нормально.
Я работал над этим проектом шесть дней подряд, и это единственная часть, которую я 'застрял на.Я просто не могу заставить его работать.Я пытался использовать
while(getline(&line, &len, decryptedFile) != -1){
while(getline(&line2, &len2, indexFile) != -1){
if(strncmp(decryptedString, indexString, 10) == 0){
fprintf(potentialKey, "%s", key);
}
}
}
Но я никогда не получал никаких совпадений.Я пытался хранить каждую строку в массивах и тестировать их по одному символу за раз, и это не помогло мне, так как в нем все английские слова были бы перечислены в одной строке.Я просто потерян, поэтому любая помощь или указатели в правильном направлении будут высоко оценены.Заранее спасибо.
РЕДАКТИРОВАТЬ: Основываясь на советах Клиффорда в комментариях, вот пример того, что я пытаюсь сделать
Допустим, indexFile содержит:
HELLO
WORLD
PROGRAMMING
ENGLISH
И decryptedFile содержит
HEVWIABAKABWHWHVWC
HELLOHEGWVAHSBAKAP
DHVSHSBAJANAVSJSBF
WORLDHEEHHESBVWJWU
PROGRAMMINGENGLISH
Я пытаюсь сравнить каждое слово из indexFile с decryptedFile, по одному за раз.Таким образом, все четыре слова из indexFile будут сравниваться со строкой 1, строкой 2, строкой 3, строкой 4 и строкой 5 соответственно.