#include <stdio.h>
#include <string.h>
#include <conio.h> //codigo robado alterado
/* Almacena cada una de las palabras */
char palabras[100][200];
/* Almacena el numero de palabras */
int numeroPalabras;
/* Almacena numero de vocales distintas de cada palabra */
/*
Funcion que recoge una cadena y almacena palabra a palabra en el
arreglo: palabras
*/
void SacarPalabras(char *cadena)
{
int contador = 0;
char c, anterior='\r';
/* Reinicia numero de palabras */
numeroPalabras=0;
/* Recorre cadena caracter a caracter */
for(int i=0; i<=strlen(cadena); i++)
{
c = cadena[i];
/*
Se considera palabra nueva cuando
el caracter actual es: ' ', '\n', '\r', '\0'
y el caracter anterior es distinto de: ' ', '\n', '\r', '\0'
*/
if(c==' ' || c=='\n' || c=='\r' || c=='\0')
{
if(anterior!=' ' && anterior!='\n' && anterior!='\r' && anterior!='\0')
{
/* Coloca caracter de fin de cadena ('\0') */
palabras[numeroPalabras][contador] = '\0';
/* Aumenta el numero de palabras en 1 */
numeroPalabras++;
/* Reinicia el contador de caracteres de la palabra */
contador = 0;
}
}
else
{
/* Coloca el caracter leido en el arreglo */
palabras[numeroPalabras][contador] = c;
/* Aumenta el contador de caracteres de la palabra */
contador++;
}
anterior = c;
}
}
/* Saca vocales distintas de las palabras */
int SacarVocales(char l)
{
char c;
/* Variables que contendran 1 si aparece la vocal, 0 si no aparece la vocal en la palabra */
int ct=0;
for(int j=0; j<numeroPalabras; j++)
{
/* Reinicia contadores de cada vocal */
for(int k=0; k<strlen(palabras[j]); k++)
{
/* Recoge caracter y verifica que vocal es */
/* No se distingue entre mayusculas y minusculas */
c=palabras[j][k];
if(c==l)
{
ct++;
}
}
}
return ct;
}
void main(void)
{
char *cadena,l;
int i, contador=0;
int ct;
clrscr();
printf("Ingrese cadena: ");
gets(cadena);
printf("caracter ");
scanf("%c",&l);
SacarPalabras(cadena);
SacarVocales(l);
printf("caracter %c aparecio en texto %d veces ",l, SacarVocales(l));
getch();
}