Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

programador400

c cedilha

Mensagens Recomendadas

programador400

boas,

tou a ler caracteres usando o getchar

mas como faço para ver se o caracter lido é um 'ç'

pelo que me apercebi o ç tem tamanho 2 logo nao da para comparar desta maneira ex: v == 'ç' em que era variavel char

alguma sugestão?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

tens que usar wide-char


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Experimenta getwc().

Atenção que a partir do momento em que usas "wide chars", ficas completamente fora do âmbito ASCII e tens de ter atenção a eventuais problemas de charsets a afins.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
programador400

no meu codigo estava a fazer algo deste genero:

while((c = getchar()) != EOF){

e de seguida verifica qual o caracter recebido e dava o output pretendido

com a tua soluçao fazia algo deste genero ?

while((c = getwc()) != EOF){

e depois como compara se o c era ç ??

ta me a dar um no isto

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

com a tua soluçao fazia algo deste genero ?

while((c = getwc()) != EOF){

Exactamente. Mas c em vez de ser definido como int passava a ser definido como wint_t.

e depois como compara se o c era ç ??

com o operador de comparação! claro!

if (c == L'ç') /* whatever */;

Atenção. Convem ter a certeza que o charset usado no editor e no compilador e no ambiente de execução é o mesmo.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.