#include <stdio.h> #include <string.h> #include <stdlib.h>
#define largo_n 25 #define largo_total 30
typedef struct { char caracteres[largo_n]; struct palabra *sig; } palabra; palabra *head_pal;
void guardar_palabra(char pala[largo_n]); void leer_palabra(char c[largo_total]); void libera_palabra(); void ingresar_palabra(); void eliminar_palabra(); void Menu (); int texto(char w[largo_total]); char* texto_e(char w[largo_total]);
main() { int opcion; printf("\nMENU PRINCIPAL"); do{ printf("\n\n .1 Agregar palabra"); printf("\n .2 Eliminar palabra"); printf("\n .3 Salir"); printf("\n\nIngrese su opcion: "); scanf("%d", &opcion); switch(opcion) { case 1: libera_palabra(); ingresar_palabra(); break; case 2: eliminar_palabra(); break; } if (opcion == 3) printf("\nUsted ha salido del sistema\n\n"); if (opcion < 1 || opcion > 3) { printf ("\nOpcion incorrecta... vuelva a intentarlo"); } } while(opcion != 3); }
void leer_palabra(char c[largo_total]) { char caracteres[largo_n]; char c_aux[50]; strcpy(c_aux,c);
int n; int i;
n = texto(c); for(i=0;i<n;i++){ caracteres[i]=c[i];} for(i=n;i<2*n;i++){ caracteres[i]=NULL;} strcpy(c,texto_e(c)); guardar_palabra(caracteres); }
int texto(char w[largo_total]) { int i; char w_aux[largo_n]; i=0; while(w[i]!=NULL) { w_aux[i] = w[i]; i++; } return i; } char* texto_e(char w[largo_total]) { int i; int j; int z; i=0; char w_aux[largo_total]; while(w[i]!=',') { i++; } i++; z=i; for(j=0;j<largo_total-i;j++) { w_aux[j] = w[i]; i++; } return w_aux; }
void guardar_palabra (char pala[largo_n]) { palabra *nueva_pal; nueva_pal = (palabra *)malloc(sizeof(palabra)); if(head_pal==NULL) { nueva_pal->sig = NULL; strcpy(nueva_pal->caracteres,pala); head_pal = nueva_pal; } else { palabra *aux; aux = head_pal; while(aux->sig!=NULL) { aux=aux->sig; } strcpy(nueva_pal->caracteres,pala); nueva_pal->sig = NULL; aux->sig = nueva_pal; } } void ingresar_palabra() { char caracteres[largo_n];
FILE *_f; char cadena[largo_total]; _f = fopen("dictionary.txt","rt"); if(_f==NULL){printf("error en el archivo");} while(fgets(cadena,largo_total,_f)!=NULL) { leer_palabra(cadena); } fclose(_f); printf("Escriba la palabra que desea ingresar:" ); gets(caracteres);gets(caracteres); guardar_palabra(caracteres);
FILE *f_;
f_ = fopen("dictionary.txt","wt"); if(f_==NULL) printf("error en el archivo"); palabra *aux; aux = head_pal; while(aux!=NULL) { fputs((aux->caracteres),f_);
aux = aux->sig; } fclose(f_); } void libera_palabra() { palabra *aux_head_pal; aux_head_pal = head_pal; if(head_pal!=NULL) { while(head_pal->sig!=NULL) { head_pal = head_pal->sig; free(aux_head_pal); aux_head_pal = head_pal; } head_pal=NULL; free(head_pal); } } void eliminar_palabra(){ char caracteres[largo_n]; char r[largo_n]; struct palabra *sig; printf("palabra: "); gets(r);gets(r); FILE *f; char cadena[largo_total]; f = fopen("dictionary.txt","rt"); if(f==NULL){printf("error en el archivo");} while(fgets(cadena,largo_total,f)!=NULL){ leer_palabra(cadena); } fclose(f);
palabra *aux; aux = head_pal; int i=0; char caracteres_a_comparar[largo_n]; while(aux!=NULL){ strcpy(caracteres_a_comparar,aux->caracteres); if(strcmp(r,caracteres_a_comparar)==0){ i++; } aux = aux->sig; }
aux = head_pal;
if(i==1){ printf("caracteres: "); gets(caracteres);//gets(n); FILE *f_; f_ = fopen("dictionary.txt","wt"); if(f_==NULL) printf("error en el archivo"); while(aux!=NULL){ strcpy(caracteres_a_comparar,aux->caracteres); if(strcmp(r,caracteres_a_comparar)==0){ fputs(strcat(caracteres," " ),f_); } else{ fputs(strcat(aux->caracteres," " ),f_); } aux = aux->sig; } fclose(f_); } else{printf("\npalabra no existe");} } |