Função strlen (problema)

13. Re: Função strlen (problema)

Lazaro
lazaro91

(usa Debian)

Enviado em 23/11/2007 - 00:23h

Olha, o raio do '{TTEXTO}' substitui o caractere terminador. Mas dá pra entender


  


14. BarraZero não é incluido

Felipe Abella
FelipeAbella

(usa Debian)

Enviado em 26/11/2007 - 19:18h

Acho que ambos estao equivocados,

O caractere BarraZero não é incluido na contagem do strlen, e o strlen não retorna um numero a mais.

strlen("teste") = 5

t e s t e BarraZero
0 1 2 3 4 5

A razão para retornar 5 não é o BarraZero, é porque o que é retornado é o *número* de carateres, e não o *index* do último.

Para retornar o último index(caso exista) deve utilizar strlen()-1.

strlen("BarraZero")-1, iria retornar -1, e eu não posso dizer que uma string tem -1 caracteres.

O problema, como já foi explicado, é justamente por causa do cedilha ocupar dois bytes (nesta maquina, ao menos), e o strlen assume que 1 byte = 1 caractere, não levando em consideração os caracteres formados por mais de um byte.




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts