Una vez en memoria la oración, se trata para que esté guardada cada una de sus palabras en la estructura Palabra que abajo en el codigo van a ver.
La función que programé que es "SEPARA" se invoca desde main y separa las 8 palabras y la ubicación de cada una con sus correspondientes tamaños en la estructura Palabra.
Mi problema es que dentro de la función las separa de 10 a las palabras, pero fuera con el tema de los parámetros y asignación no se guarda la palabra en la estructura.
Código C:
Ver original
#include<stdio.h> #include<stdlib.h> #include<string.h> struct palabra { char pal[10]; //ahi va la palbra int cl; // cantidad de letras de la palabra char pal_enc[20]; // palabra encriptada, esto no va }; struct palabra *separa(char*); main() { char letra[100]; int i=0,r=0; struct palabra *ap, palabr; ap=&palabr; { i++; } letra[i] = '\0'; for(r=0; r<2; r++) { ap=separa(&letra); ap++; } ap=&palabr; for(r=0; r<3; r++) { ap++; } } struct palabra *separa(char *letra) { static int e=0;//saber donde queda la posicion de antes struct palabra as; char s[10]=" "; int i=0, r=1, f=0; do { if(letra[e]!=' ') r=0; else e++; } while(r!=0); while((i<10)&&(r==0)) { if(((int)letra[i]>=65)&&((int)letra[e]<=90)) { as.pal[i]=letra[e]; } i++; e++; if(letra[e]==' ') { r=1; as.pal[i]='\0'; } } return(&as); };
Se que le falta mucho al programa para hacer lo que pide el ejercicio pero primero necesito guardar la palabra en la estructura. Cuando ingreso cualquier oración dentro de la función si muestro la estructura está bien. Pero en el main me muestra cualquier cosa. Si alguien puede ayudar a este pobre código se lo voy a agredecer. Un abrazo.
PD: La función es así con puntero y todo porque el prototipo lo da el ejercicio.