Jump to content
HRMT

Caracteres acentuados

Recommended Posts

HRMT

Boas,

Quero fazer um programa que lê um texto do teclado e depois imprime o mesmo texto mas sem as vogais (incluindo as acentuadas). A parte das vogais sem acento é fácil, quando tem acento alguém me pode dizer como faço?

Obrigado desde já.

Edited by pmg
remover formatacao

Share this post


Link to post
Share on other sites
mundo

Vais a tabela ASCII extendida e procuras o valor desses caracteres, apartir dai é relativamente simples

Share this post


Link to post
Share on other sites
pmg

Depende do teu ambiente de desenvolvimento/trabalho.

Se tabalhares num ambiente de 8 bits provavelmente consegues "safar-te" com chars normais, se for de 16, 32, 64 bits tens de te meter com wchar_t.

Ou ainda, se no teu ambiente estiver tudo codificado em UTF-8 podes "safar-te" com char, mas é uma confusao tremenda.

Portanto ... pergunta #1: Qual é que o charset do teu ambiente de desenvolvimento? Como é que o teu ambiente de trabalho codifica o input? O metodo usado é o mesmo nos dois ambientes?


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!

Share this post


Link to post
Share on other sites
vitae182

No caso de ler um texto e no fim imprimi-lo, mas em vez de por as vogais, põe _

tenho assim:

#include <stdio.h>
#include <wchar.h>

int main(){
 wchar_t c;
 int i=0,j=0,x=0;
 wchar_t array[1000];
 while((c=getchar())!=EOF){
   if(c==97 || c=='e' || c=='i' || c=='o' || c=='u' ||
       c=='A' || c=='E' || c=='I' || c=='O' ||c=='U' || (c>128 && c<164)){
     c='_';
     x++;
   }
   array[i]=c;
   i++;
 }
 while(j<i){
   printf("%c", array[j]);
   j++;
 }

estou a usar o ubuntu, mas há caracteres acentuados que não aparecem na tabela ascii :/

Share this post


Link to post
Share on other sites
Rui Carlos

estou a usar o ubuntu, mas há caracteres acentuados que não aparecem na tabela ascii :/

Por isso mesmo é que é importante saber qual o enconding dos dados. Deves ter essa informação nas preferências do terminal (já agora, experimenta fazer echo $LANG no terminal).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.