Jump to content

Contar a primeira letra de cada palavra


MRMC
 Share

Recommended Posts

Boa tarde pessoal,

Tenho em mãos um projecto em que tenho de contar a ocorrência da primeira letra de uma palavra. Por exemplo:

as palavras "portugal", "programar" iriam para a letra p, e assim sucessivamente. Tenho este programa comigo, mas faz a contagem de todas as letras, e é de uma frase que eu insiro. Ou seja, podiam-me ajudar nesses dois pontos, ou pelo menos dizerem-me onde posso encontrar resposta a isso.

#include <stdio.h>
#include <stdlib.h>

int main()

{
int i;
char TC;
int TL = 0;  
int AA[128] = {0};  
    printf("Introduza uma linha de texto: ");
TC = getchar();					
while (TC != '\n')				
{
    TL++; 
    AA[(int)TC]++;   
    TC = getchar();
    }

printf("Tabela de Frequencia\n");
printf("----------------\n");
printf("Letra\tContador\t %% Total\n");
printf("--------------------------------\n");
printf("Todas\t%d\n",TL);
for ( i = 0; i < 127; i++)
if(AA[i]>0)							
printf("%c\t%d\t%.2f\n",i,AA[i],(float)AA[i]/TL*100);
system ("pause");
    

return (0);
}

Desde já, obrigado!

👍

Link to comment
Share on other sites

Lês para uma string o input (fgets, p.e). Depois percorres essa string e se a posição que estás a percorrer for igual a 0 incrementas um contador na posição de um vector (como estavas a fazer no vector AA). Imagina que a posição em que estás é i, se i-1 for um espaço então incrementas no vector AA.

Atenção, isto só funciona se a frase não contiver mais de um espaço consecutivo entre as palavras.

here since 2009

Link to comment
Share on other sites

Lês para uma string o input (fgets, p.e). Depois percorres essa string e se a posição que estás a percorrer for igual a 0 incrementas um contador na posição de um vector (como estavas a fazer no vector AA). Imagina que a posição em que estás é i, se i-1 for um espaço então incrementas no vector AA.

Atenção, isto só funciona se a frase não contiver mais de um espaço consecutivo entre as palavras.

Então, para declarar o ficheiro faço isto:

const char FILE_NAME[] = "text.txt";

Depois, como faço para comparar se o 'i-1' é ou não um ' '? Tenho que colocar essa comparação onde utilizo a variável i? Ou quando faço esta instrução:

AA[(int)TC]++;

👍

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.