Jump to content
Margarida Sousa

Contar palavras numa string

Recommended Posts

Margarida Sousa

Para contar o numero de palavras numa string uso:

char frase[50];
    int i, flag = 0, total = 0;

    printf("Introduza a frase\n");
    fgets(frase, 51, stdin);

    for (i = 0; i<strlen(frase); i++) {
        if (!flag && frase[i] != ' ') {
            flag = 1;
            total++;
        } else if (flag && frase[i] == ' ')
            flag = 0;
    }
    printf("O número de palavras é: %d\n", total);

mas quando quero calcular o numero de palavras de várias frases que são que são introduzidas seguidas de enter como faço? Pois com este código não me vai contar a primeira palavra da segunda frase 

Share this post


Link to post
Share on other sites
HappyHippyHippo

antes de mais, porque é que estás a definir o array com 50 caracteres e depois dizes que o fgets pode usar 51 ?

depois, vou sacar do meu dedinho de adivinho, isto porque dizes que não lê a primeira palavra da segunda frase, mas não apresentas código capaz de o sequer ler a segunda frase, e vou assumir que não te deste ao trabalho de apresentar o código alterado que pretende ler a segunda frase.

depois desta magia, vou te propor fazer um teste:

primeiro vais testar estas duas frases:

1 - "um dois", 2 - "tres quatro"

depois vais testar as seguintes duas frases

1 - "um dois ", 2 - "tres quatro"

(nota o caracter de espaço no fim da primeira frase)

 

se o valor for diferente, porque achas que foi ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo
11 minutes ago, Margarida Sousa said:

porque conta os espaços

vou então assumir que fizeste o teste e deu o resultados diferentes.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
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

×
×
  • 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.