Witam. Mam do napisania program w języku C, który będzie zamieniał słowa w tekście zgodnie ze słownikiem w innym pliku.
Np w pliku: "slownik.txt" mamy:
mama:mother,
tata:father,
babcia:grandma
A w pliku "test.txt":
mama poszla z babcia na zakupy
A więc wynikowo powinno być mother poszla z grandma na zakupy, a to nie działa bo nic nie dopisuje ani nie zamienia w pliku test.txt. Oto kod:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
FILE *fp,*slownik;
char liniatekstu[20];
if ((fp=fopen("test.txt","a"))==NULL)
{
printf ("Nie mogę otworzyć pliku test.txt do zapisu!\n");
}
if ((slownik=fopen("slownik.txt","r"))==NULL)
{
printf ("Nie mogę otworzyć pliku test.txt do zapisu!\n");
}
char **tab = (char**) malloc(2*sizeof(char*)); // tworzymy tablice na 10 napisow
int i;
for(i = 0; i < 2; i++)
{
tab[i] = (char*) malloc(2*sizeof(char)); // tworzymy napis
tab[i][0] = 0; // czysci smieci
}
fscanf(slownik,"%s",&liniatekstu);
char slowo[30];
char *token;
token = strtok(liniatekstu," ,.:");
int k = 0;
while(token != NULL)
{
printf("%s\n", token);
tab[k] = token;
token = strtok(NULL," ,.:");
k = k + 1;
}
while(!feof(fp))
{
fscanf(fp,"%s",&slowo);
printf("%s",slowo);
const char* x = tab[0];
const char* y = tab[1];
if ( strcmp(slowo,x) == 0)
{
fputs(y,fp);
//fprintf(fp,"%s",y);
}
}
fclose (fp);
getchar();
}