Ayudenme ,Problemas con leer lineas de otro archivo

Sonia Morales
08 de Diciembre del 2003
Hola como están , tengo cierta complicación y me estoy volviendo loca por intentar resolverla.
Estoy haciendo un programa bajo el lenguaje C , o eso intento , porque por ahora estoy desesperada .
En mi programa tengo que leer un archivo linea a linea y copiar cada linea en otro "archivocopia" (esto se hacerlo el problema bien ahora) , despues si en el archivo de origen encuentro una cadenaA igual a otra cadenaB ,debo de sustituir la cadenaB por otra cadenaC , sinembargo esta cadenaC esta en otro archivo (el contenido de esa cadenaC es arbitrario o sea que su contenido es diferente) , por lo que debo de abrirlo , coger esa linea y cambiarla por la cadenaA y despues guardarla seguido de las demás lineas que ya había copiado en "archivocopia".
En mi codigo hago lo siguiente
/* una vez ya he abierto el fichero de origen */
int main()
{
char linea[100];
char linea2[100];
char *guardalineaentera;
char *guardarlineaentera2;

FILE *forigen,*fescritura,*fintercambio;

forigen = fopen("origen.txr", "r");
fescritura=fopen("escritura.txt", "w+");
fintercambio=fopen("intercambio.txt",r);

while (c!=NULL) {

fgets(linea,100,forigen);
guardalineaentera=strtok(linea,"");
if (strcmp(guardalineaentera,"linea a comparar con A")==0)
{ fgets(linea,100,forigen); /*salto la linea que es igual */
/*cojo una linea del fichero de intercambio*/
fgets(linea2,100,fintercambio);
guardalineaentera2=strtok(linea2,"");
/*la copio despues en el de origen*/
fprintf(fescritura,"%s",guardalineaentera2); }

/* va copiando el contenido de origen en el fichero de escritura */
fprintf(fescritura,"%s",guardalineaentera);

}
}

El problema es que no me resulta y no se si debo hacer alguna otra cosa o lo hago todo mal . Necesito me hecheis una mano , graciaas.