contagem de caracteres maiusculos

Started by nataliafernandes, November 22, 2007, 06:51:58 PM

Previous topic - Next topic

nataliafernandes

Boas

Nova duvida: tenho uma variavel $txt que contem um texto.

Precisava de contar o numero de caracteres maiusculos que essa variavel tem..
Se fosse para contar o numero de caracteres podia usar a funcao strlen mas como so queria as maiusculas nao sei  :oops:

Será que alguem me pode ajudar??


Obrigada desde já !!

XsTeAl


KTachyon

Pois, convém indicares a linguagem de programação, senão é complicado ajudar-te.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

nataliafernandes


ilovehentai

Olá natalia fernandes e bem vinda ao forum

vamo la ver então como podemos contar o número de caracteres maíusculos numa string.

1Ã,º Vamos criar uma função que recebe como atributo uma string que iremos contar os caracteres maíusculos
2Ã,º Irei dividir a string e separar os caracteres, depois irei colocá-los dentro de um array
3Ã,º iniciarei um ciclo foreach que irá pegar em cada um dos valores do array e colocá-lo numa variável
4Ã,º essa variável será testada, se for uma maíscula será contada, senão será ignorada.
por fim retornamos da função a contagem de caracteres.




function contarMaiusculas($string){



// a função str_split separa os caracteres de uma string

$caracteres = str_split($string);



//inciamos o contador de caracteres

$contagem = 0;



foreach($caracteres as $char){



 //a função ctype_upper returna verdadeiro ou falso caso o caractere for ou não maíuscula

 if( ctype_upper($char) ){



  $contagem++;



 }



}

//retornamos o valor final

return $contagem;



}

e prontos, podemos agora aplicar a nossa função da seguinte maneira:




$totalMaiusculas = contarMaiusculas("Hello World!");

echo $totalMaiusculas;

Isto provavelmente irá retornar o valor 2

E prontos espero ter ajudado.
Cumps.  :wink:

nataliafernandes

Obrigadao!! ajudas-t muito!

Só tinha um pequeno problema.. a função str_split() só existe no php5 (eu só tenho a 4) mas eu arranjei solução! substitui por preg_split (penso que funciona da mesma maneira)

Só mais uma questão.. para fazer a contagem de minusculas substituiria ctype_upper por o quê?

Mais uma vez obrigada

ilovehentai

Tens aqui a lista dos ctype (character type functions)

http://pt.php.net/manual/en/ref.ctype.php

no  caso das minúsculas terias o " ctype_lower "

Cumps  :wink:

scotty

QuoteObrigadao!! ajudas-t muito!

Só tinha um pequeno problema.. a função str_split() só existe no php5 (eu só tenho a 4) mas eu arranjei solução! substitui por preg_split (penso que funciona da mesma maneira)

Só mais uma questão.. para fazer a contagem de minusculas substituiria ctype_upper por o quê?

Mais uma vez obrigada  

Ou usas uma função para isso como já aqui disseram ou subtrais as maiusculas ao total lol.

sweetumchocolate

Quote
QuoteObrigadao!! ajudas-t muito!

Só tinha um pequeno problema.. a função str_split() só existe no php5 (eu só tenho a 4) mas eu arranjei solução! substitui por preg_split (penso que funciona da mesma maneira)

Só mais uma questão.. para fazer a contagem de minusculas substituiria ctype_upper por o quê?

Mais uma vez obrigada  

Ou usas uma função para isso como já aqui disseram ou subtrais as maiusculas ao total lol.

Isso da subtracção não resulta. Esqueces-te dos espaços, pontuação, etc. Como na função que deram, "Hello World" tem um espaço que não é maiúscula nem minúscula
Made on a Mac

Se o Homem alguma vez fez alguma coisa de jeito foi o Big Tasty Bacon!!!

nataliafernandes

Ola de novo..

tive um probleminha com este código..

enquanto tinha a página no meu servidor local funcionava tudo bem, mas quando pus a pagina on-line deixou de contar todas as letras maiusculas e minusculas com acentos :S nao percebo porque!!

ilovehentai

Ola novamente, ora não entendo também o porque, mas de qualquer forma imagino que será algo na configuração do servidor, enfim de qualquer forma vou-te sugerir nova forma de fazer o mesmo, esta será considerando que em PHP uma string é um array de caracteres, o que iremos fazer será percorrer um ciclo For, que irá acabar no último caractere da string e irá somar 1 valor a cada minúscula ou maíuscula, então fazêmo-lo da seguinte forma:





function contMaiusculas($string){



$contagem = 0;



for($i = 0; $i <= (strlen($string)) - 1; $i++){



if(ctype_upper($string[$i])){



$contagem++;



}

}



return $contagem;

}





$altContagem =  contMaiusculas("HÉllo WoRld!E");

echo $altContagem;



?>

Penso que o código seja suficientemente simples para entender o que se passa ai, espero que assim já dê, caso contrário imagino que será o teu servidor que estará com alguma configuração desactualizada, talvez com a função "ctype".

de qualquer forma espero que tenha ajudado mais alguma coisa.

nataliafernandes

tb nao funcionou..

já arranjei uma solução, substitui os caracteres especiais por normais, assim já faz bem a contagem.