a
Primera letra del abecedario español. Vocal fuerte o abierta. Preposición.
abad
El que dirige una abadía o monasterio.
"palabra"
"significado"
.
.
etc.
Luego, lo que hago es una función que primero me pida que quiero hacer, luego me ingrese la nueva palabra o sobrescriba su significado. Pero me ha tirado una serie de errores que no se que hacer con ellos. lo estoy haciendo con tda y ficheros. creo es la forma mas fácil pero no se.
aquí esta el código sobretodo me interesan saber lo malo de las funciones
pb reescribir_significado(pb x, int n, pb* c) y
pb ingresar_palabra(pb x, pb* c, int n)
ahí es donde metí la pata. Disculparan por el código es un poco extenso.
Código C++:
Ver original
#include<iostream> #include <string.h> #include <cstdlib> #include <stdio.h> using namespace std; struct palabra_p{ char* palabra; char* significado; }; typedef palabra_p* pb; pb crear_palabra(){ pb x=new palabra_p; x->palabra=new char[50]; x->significado=new char[100]; return x; } void liberar_palabra(pb x){ delete[] x->palabra; delete[] x->significado; delete[] x; } pb leer_palabra(pb x){ cout<<"Digite la palabra: "; cin.getline(x->palabra,50); cin.getline(x->palabra,50); } cout<<"Digite el significado: "; cin.getline(x->significado,100); cin.getline(x->significado,100); } return x; } pb reescribir_significado(pb x, int n, pb* c){ //reescribe el significado de una palabra ya existente FILE *fichero; else { cout<<"Digite la palabra: "; cin.getline(x->palabra,50); //ingresa palabra cin.getline(x->palabra,50); for(int i=0;i<n;i++){ cin.getline(x->significado,50);//ingresa el significado //strcpy(c[i+1],x->significado); c[i+1]=x->significado; //reescribe el significado. cout<<x->palabra<<endl<<x->significado; }}}} pb ingresar_palabra(pb x, pb* c, int n){ //ingresa una palabra sin significado FILE *fichero; else { for(int i=0;i<n;i++){ cout<<"Digite la palabra: "; x=leer_conjunto_palabras(pb* c, int n); //ingresa palabra cin.getline(x->palabra,50); for(int i=0;i<n;i++){ cout<<"la palabra ya existe";//ingresa el significado else //strcpy(c[i+1],x->palabra); c[i]=x->palabra; //reescribe el significado. cout<<x->palabra<<endl<<x->significado; }}}}} void imprimir_palabra(pb x){ cout<<"\nInformacion de la palabra\n"; cout<<"-------------------------\n"; cout<<"palabra: \t"<<x->palabra; cout<<"\nsignificado: \t\t"<<x->significado; } void seleccionar(pb* c,int n,int x){ switch(x){ case 1: cout<<"\n___________________________________\n"; cout<<"\nordenamiento de palabras\n"; cout<<"___________________________________\n\n"; c=pb ingresar_palabra(pb x, int n); imprimir_palabra(pb x); break; case 2: cout<<"\n___________________________________\n"; cout<<"\nordenamiento de palabras\n"; cout<<"___________________________________\n\n"; c=pb reescribir_significado(pb x, int n); imprimir_palabra(pb x); break; default: cout<<"el numero tiene que ser 1, 2 o 3"<<endl; } } int main(){ cout<<"\n\n\n\n"; cout<<"que desea hacer"? cout<<" 1 ingresar nueva palabra"; cout<<" 2 resscribir significado de palabra"; int n=0; cin>>n; pb* conjunto=new pb[n]; conjunto=seleccionar(int n); }
aquí el informe de errores.
In function 'palabra_p* reescribir_significado(pb, int, palabra_p**)':
57 40 C:\Users\Fredy\Desktop\Tipos de dato abstarctos\diccionario 0.3.cpp [Error] cannot convert 'pb {aka palabra_p*}' to 'const char*' for argument '2' to 'int strcmp(const char*, const char*)'
60 17 C:\Users\Fredy\Desktop\Tipos de dato abstarctos\diccionario 0.3.cpp [Error] cannot convert 'char*' to 'pb {aka palabra_p*}' in assignment
64 40 C:\Users\Fredy\Desktop\Tipos de dato abstarctos\diccionario 0.3.cpp [Error] a function-definition is not allowed here before '{' token
134 1 C:\Users\Fredy\Desktop\Tipos de dato abstarctos\diccionario 0.3.cpp [Error] expected '}' at end of input