Algumas pessoas tem problema com o uso de scanf, principalmente no uso de espaços nas strings, para resolver isso tem um macete muito simples. Digamos o código abaixo:
#include<stdio.h>
int main()
{
char frase[50];
printf("Digite a uma frase: ");
scanf("%s",frase);
printf("A frase digitada foi: %s\n");
return 0;
}
Compile: gcc frase.c -o frase
Resultado:
bash-3.1$ frase Digite a uma frase: joao caiu feio A frase digitada foi: joao bash-3.1$
Para resolve esse problema do scanf não capturando o resto da frase usando o parâmetro %[^\n] ao invés de %s, por exemplo:
#include<stdio.h>
int main()
{
char frase[50];
printf("Digite a uma frase: ");
scanf("%[^\n]",frase);
printf("A frase digitada foi: %s\n");
return 0;
}
Compile: gcc frase2.c -o frase2
Resultado:
bash-3.1$ ex6 Digite a uma frase: joao caiu feio A frase digitada foi: joao caiu feio bash-3.1$
Agora a frase foi devidamente capturando, para evitarmos overflows no uso desse parâmetro no scanf, colocando %limite[^\n], sendo limite igual ao valor máximo de caracteres que a função scanf ira armazenar na variável. Ficando desta forma.
#include<stdio.h>
int main()
{
char frase[50];
printf("Digite a uma frase: ");
scanf("%49[^\n]",frase);
printf("A frase digitada foi: %s\n");
return 0;
}
Para limpar o buffer após o uso de scanf com este parâmetro, usamos getchar() após o scanf.
#include<stdio.h>
int main()
{
char frase[50];
printf("Digite a uma frase: ");
scanf("%49[^\n]",frase);
getchar();
printf("A frase digitada foi: %s\n");
return 0;
}
Espero que a dica sirva para poderem resolver seus problemas o uso de scanf e strings. Bons estudos a todos. Nas referências tem um link com um tabela informando uma serie de parâmetros interessantes para o uso de scanf, no segundo link tem uma artigo do com diversas dicas para printf e scanf a dupla dinâmica.
Referência:
Como usar o scanf() para strings com espaços
Parâmetros interessantes do scanf e do printf em C

Não estou conseguindo resolver este problema
Faça um programa que receba uma frase, calcule e mostre a quantidade de vogais da frase digitada.O programa devera contar vogais maiusculas e minisculas.