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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • 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.