Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #define N 30
- void leer_palabra(char &c, char p[]);
- bool anterior_palabra(char p[]);
- void saltar_blancos(char &c);
- void leerp(char &c,char p[]);
- int main()
- {
- int n_p=0; //declaramos vble para el numero de palabras
- char p[N+1]; //vble de caracteres +1 porque asi se cumplen los 30 espacios sino no
- char c; //para guardar los caracteres de las palabras
- printf("\n\t***Introduce una frase acabada en '.'***\n\n");
- scanf("%c",&c); //escaneamos los caracteres de la frase
- leer_palabra(c,p); //llamamos a la accion de leer la palabra
- while (!anterior_palabra(p)) //cuando sea diferente a la condicion bool
- {
- n_p++; //sumamos una al contador
- leer_palabra(c,p); //volvemos a leer la siguiente palabra
- }
- printf("\n\tEl numero de palabras introducidas es:\t %d\n\n",n_p);
- }//cierro main
- void leer_palabra(char &c, char p[]) //generamos la accion leer palabra
- {
- saltar_blancos(c);//le decimos que haga referencia a la funcion de saltar blancos
- leerp(c,p); //y la de leer palabras
- }
- bool anterior_palabra(char p[])//generamos la funcion de anterior palabra
- {
- return(p[0]=='\0'); // le decimos que devuelva '\0' = caracter final de cadena para poder inicializar una nueva para otra palabra
- }
- void saltar_blancos(char &c) //generamos la accion de saltar espacios
- {
- while(c==' ') //cuando el caracter sea un espacio
- {
- scanf("%c",&c); //lo salta y pide uno nuevo
- }
- }
- void leerp(char &c,char p[]) //generamos la accion de leer palabras
- {
- int i=0;
- while(c!=' ' && c!='.') //cuando c no es ni espacio ni .
- {
- p[i]=c; //le decimos que guarde los caracteres en la cadena p
- i++; //por cada caracter suma una posicion
- scanf("%c",&c); //lee un nuevo caracter
- }
- p[i]='\0'; //cuando termine finalice la cadena
- }
- //codigo para el capicua que nose si esta bien
- int j,k,x,y,cap=0;
- for(j=0;j<i;j++) //condicion para que empiece al inicio de palabra
- {
- p[j]=x;
- }
- for(k=i;k>=i;k--) //condicion para que salga por el final
- {
- p[i]=y;
- }
- if(x==y) //si al inicio y final van siendo iguales
- {
- cap++; //sume uno al contador
- }
- printf("%i",cap);
Add Comment
Please, Sign In to add comment