Ir para conteúdo
Fórum Script Brasil
  • 0

Ler caracteres especiais


{MR_C}

Pergunta

Olá galera,

Então,meu problema é o seguinte:

No meu programa se lê uma palavra e vai tratando dela aplicando uma série de regras dependendo da combinação das letras, e em uma dessas regras mexe caso exista uma "Ç" na palavra, o mesmo tem que virar "S", no entanto quando ele lê a "Ç" o programa simplesmente não faz nada, é como se ele não estivesse lá.

E quando ele lança o seguinte Warning:

|warning: comparison is always false due to limited range of data type|

O trecho de codigo é esse bem simples:

*****************************************

for(i=0;i<tam;i++)

{

if(string=='Ç')

{ string='S';

}

}

printf("Ç -> S\n");

printf("%s \n\n",string);

*****************************************

Teria alguma coisa a ver com UTF-8???

PS: Meu compilador é GNU GCC

:rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

Abç

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Pode ser por causa da codificação mesmo.

Troque o 'Ç' por 128 e faça o type cast do array, assim:

if ( (unsigned char) string[i] == 128 )
{
    string[i]='S';
}

Na tabela ASCII, o código do 'Ç' é 128.

Não sei porque, mas quando coloca 'Ç' ao invés do valor, o programa interpreta internamente como sendo 'Ã' que é o valor 199.

Usei windows 7 64Bit com CodeBlocks (MinGW) para testes.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...