Задача: прочитать текст из файла (слово за словом) и вывести на консоль переведенный текст.
Я пытаюсь создать своего рода языковой словарь на CДля неизвестных слов, которых нет в моем словаре, мне нужно вывести " *** "
.
Мне нужно использовать около 100 слов для перевода, но я сделал прототип для 3 слов, чтобы увидеть, как он работает. Пока у меня есть частично работающая программа, но она выводит " *** "
на каждой итерации. Я знаю, что, вероятно, допустил ошибку при сравнении buf (наших слов) со словарем символов, но не могу его найти.
Если есть более простой способ сделать этот словарь, пожалуйста, дайте мне знать. Или, может быть, кто-нибудь может дать мне сценарий подобного примера?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getsize(char *a) {
int k=0;
while (a[k]) k++;
return k;
}
int compare(char *buf, char *dictionary)
{
int sz1 = getsize(buf);
int sz2 = getsize(dictionary);
if (sz1 != sz2) return 0;
for (int i=0; i<sz1; i++) {
if (buf[i] != dictionary[i]) return 0;
}
return 1;
}
int main()
{
int i;
char ch;
char dictionary[20][2][20]={
"baum","tree",
"schule","school",
"essen","to eat"
};
FILE * fPtr;
fPtr = fopen("dex.txt", "r");
if(fPtr == NULL)
{
printf("Unable to open file.\n");
exit(EXIT_FAILURE);
}
printf("File opened successfully.\n\n");
char buf[10];
while(fscanf(fPtr, "%s", buf) != EOF)
{
for(i=0;i<;i++){
if(compare(buf,dictionary[i])){
printf("%s\n", dictionary[i][1]);
}
else
printf("***\n");
}
}
return 0;
}