Ir para o conteúdo
Margarida Sousa

Contar palavras numa string

Mensagens Recomendadas

Margarida Sousa    0
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 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1132
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 ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1132
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade