Ir para conteúdo
Fórum Script Brasil
  • 0

Contando vogais e consoantes


Dobrowolsky

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

Não existe uma função para isto, tem que fazer na unha mesmo...

Existe um macete que pode te ajudar: absolutamente tudo em um programa são dados numéricos, até mesmo os caracteres!

Cada caracter possui um valor pré-definido em uma tabela. Ela é chamada de Tabela ASCII. Um detalhe importante nesta tabela é que as letras estão todas em ordem alfabética e agrupadas em sequência! Assim você pode fazer comparações como faria com um número. Inclusive até mesmo operações aritméticas você pode fazer com os caracteres. Por exemplo:

printf("%c\n", 'A' + 3);
A saída deste código será a letra 'D' pois o computador converteu o valor de 'A' em um número pela tabela ASCII, somou 3 e depois converteu para o caracter correspondente novamente. Assim você pode fazer uma comparação como a que está a seguir para saber se um determinado caracter é uma letra:
if(ch >= 'A' && ch <= 'Z')

Caso queira que eu explique melhor é só avisar! :)

Link para o comentário
Compartilhar em outros sites

  • 0

HUAhuAhua

sim sim

e nem é certo tb já falar a soluçao assim, e acaba q eu tb nem aprendo a fazer e a quebra a cabeça afinal programaçao é isso ne? fundir a cuca

o negocio mesmo é quando realmente não consigo ow então não sei o q usar, pois ainda tenho as limitaçoes ne tem muita coisa q ainda não me foi apresentado... + com o tempo agente aprende ^^

vlw pela disposiçao

agora so descobrir o erro =X, axo q não vai ser dificil não

#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;

int main(void)
{
    int x, y, i, n, vogal=0,consoante=0, let;
    char frase[100];
    FILE *arq;   
    
    cout<<"\nDigite a mensagem.\n";
    fflush(stdin);
    gets(frase);
    y=strlen(frase);
    for(i=0; i<y; i++)
    {
             let=frase[i];
             
             switch(let)
             
             case ((65)||(69)||(73)||(79)||(85)||(97)||(101)||(105)||(111)||(117)):
             vogal++;
             break;
             

    }
    consoante=y-vogal;
    fopen("ContagemVC.bin", "wb");
    fwrite(&vogal, sizeof(vogal), 1, arq);
    fwrite(&consoante, sizeof(consoante), 1, arq);
    fclose(arq);
    cout<<"\nA palavra digitada possui: "<<y<<" letras";
    cout<<"\n"<<vogal<<" vogais";
    cout<<"\n"<<consoante<<" consoantes";
    system("pause");
    return 0;
}

Editado por Dobrowolsky
Link para o comentário
Compartilhar em outros sites

  • 0

É isso mesmo, como tudo na vida a dedicação sempre é recompensada... :)

Quanto ao código: você considerou que se não for vogal é consoante. Mas e se for um número, espaço, acentuação?

O correto é identificar se é consoante também. Além disso você colocou diretamente o número ASCII das vogais. desta forma fica difícil de entender! Eu faria da seguinte forma:

let = toupper(frase[i]); // Passa para uppercase para testar apenas com maiúsculas
  if(let == 'A' || let == 'E' || let == 'I' || let == 'O' || let == 'U') {
    vogais++;
  } else if(let>='A' && let <= 'Z') { // Podia ser apenas maior que 'A' mas assim acho que fica melhor de entender!
    consoantes++;
  } else {
    outros++; // Inventei essa variável para se você quiser usar senão exclua este else!
  }

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...