Ir ao conteúdo

Posts recomendados

Postado

Boa Noite galera! Tudo jóia? 

 

Estou quebrando a cabeça com um código aqui, preciso fazer um programa em C em que um usuário digite uma frase e mostre quantos espaços em branco, quantas vogais e consoantes ela tem, repare o código que fiz:

#include <stdio.h>#include <stdlib.h>int main(){        char frase[20];    int x,v,c,e;                v=c=e=0;                printf("\n Digite uma frase qualquer: ");        gets(frase);                for(x=0; frase[x]!= '\0'; x++){                 if(frase[x]==' ')                 e++;                 else                 if(frase[x]>='A' && frase[x]<='Z' || frase[x]>='a' && frase[x]<='z')                                  switch(frase[x]){                                  case'A': case'a': case 'E': case 'e': case'I': case'i':                                  case'O': case'o': case'U': case'u':                                           v++;                                           break;                                                                                      default:                                                   c++;                                                   }                                                   else                                                   e++;                                                   }                                                                                                                           printf("\n\n A frase tem %d espacos em branco",e);         printf("\n A frase tem %d vogais",v);         printf("\n A frase tem %d consoantes",c);                                                                                                 system("pause>>null");                 }            

Mas este trecho aqui abaixo está muito grande, fica até feio e preciso usar o toupper e tolower e não sei onde encaixar em meu código esses benditos. 

if(frase[x]>='A' && frase[x]<='Z' || frase[x]>='a' && frase[x]<='z')                                  switch(frase[x]){                                  case'A': case'a': case 'E': case 'e': case'I': case'i':                                  case'O': case'o': case'U': case'u':                                           v++;                                           break;

Alguém pode dar uma força? 

  • 2 semanas depois...
Postado
#include <stdio.h>#include <stdlib.h>#include <ctype.h>int main() {    char frase[20];    int x, v, c, e;    v = c = e = 0;        printf ( "\n Digite uma frase qualquer: " );    scanf("%19[^\n]%*c", frase);        for ( x = 0; frase[x] != '\0'; x++ ) {        switch ( tolower ( frase[x] ) ) {            case'a': case 'e': case'i': case'o': case'u':                v++;                break;                            case ' ':                e++;                break;            default:                c++;                break;        }            }        printf ( "\n\n A frase tem %d espacos em branco", e );    printf ( "\n A frase tem %d vogais", v );    printf ( "\n A frase tem %d consoantes", c );        system ( "pause>>null" );    }

 

Muito obrigada mais uma vez! Nem sabia que podia fazer o switch case dessa forma! Muito obrigada!

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!