View Full Version : [C]Conta caracteres


Ruanes
20-06-2008, 20:42
oi, cria fazer um conta caracteres.
já fiz este codigo, o problema é que quando escrevo o nome o cursor vai uma linha para baixo e nao acontece mais nada.
int conta_letras (char *string)
{
int contador_de_letras=0;
while (*string!='\0')
{
if (*string==' ');
else
{
contador_de_letras++;
}
}
return (contador_de_letras);
}

Mr. Brightside
20-06-2008, 21:05
Pelo que descreves o problema não está nessa função.

De qualquer forma podes tornar esse código mais elegante.

Ace-_Ventura
20-06-2008, 21:07
esse if está 1 bocado manhoso. altera para if (*string != ' ') contador_de_letras++;

tool
20-06-2008, 21:30
acho que o teu problema está em não estares a mexer a posição no ponteiro, pois, à medida do tempo deverias ir fazendo *(string + i) em que o i vai variando, de 0 a strlen(string).

metaclay
20-06-2008, 21:40
Tu só queres contar os caracteres da string? Não queres incluir os espaços na contagem certo?

Ruanes
20-06-2008, 22:00
Tu só queres contar os caracteres da string? Não queres incluir os espaços na contagem certo?
ya

esse if está 1 bocado manhoso. altera para if (*string != ' ') contador_de_letras++;
mas assim so ia contar os caracteres com espaço

tool
20-06-2008, 22:01
string++ ?

MPalhas
20-06-2008, 22:19
ya


mas assim so ia contar os caracteres com espaço

não, é precisamente o contrário. repara que em vez de "==", tem lá "!="
o primeiro significa igual, o segundo significa diferente.
não há necessidade de estar a criar um if vazio para depois por no else, quando podes simplesmente por a condição oposta

e como disse o tool, falta-te incrementar o ponteiro a cada passagem do ciclo, senão não sai do sitio e cria um loop infinito

Ruanes
20-06-2008, 22:23
obrigado pela ajuda