Conversor UTF-8 para CHAR, em C
Autor: Leonardo N. dos Santos | Publicado: 2010-01-06T05:25:00-08:00

Depois de muito procurar na intenert e de tentativas anteriores frustadas, consegui um conversor de UTF8 para CHAR (ASCII) do C. A idéia era transformar "ÁÀÃÂ" para "AAAA".

Depois de encontrar um site que especifica quais os códigos do UTF8 (http://titus.uni-frankfurt.de/unicode/inx/titu0000.htm) fiz uma função que faz a conversão que eu me referi:

void volta_uma_casa(char *s,int pos){
&nbsp;&nbsp;&nbsp; int i;
&nbsp;&nbsp;&nbsp; int tam=strlen(s);
&nbsp;&nbsp;&nbsp; for(i=pos;i&lt;tam;i++){
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]=s[i+1];
&nbsp;&nbsp;&nbsp; }
}

void utf8_para_ascii(char *s){
&nbsp;&nbsp;&nbsp; //inspirado em: http://titus.uni-frankfurt.de/unicode/inx/titu0000.htm
&nbsp;&nbsp;&nbsp; /* string de teste
"!&nbsp;&nbsp;&nbsp; \"&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; $&nbsp;&nbsp;&nbsp; %&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp; '&nbsp;&nbsp;&nbsp; (&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; +&nbsp;&nbsp;&nbsp; ,&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp; /&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp; 9&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; ;&nbsp;&nbsp;&nbsp; &lt;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp; ?&nbsp;&nbsp;&nbsp; @&nbsp;&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp; B&nbsp;&nbsp;&nbsp; C&nbsp;&nbsp;&nbsp; D&nbsp;&nbsp;&nbsp; E&nbsp;&nbsp;&nbsp; F&nbsp;&nbsp;&nbsp; G&nbsp;&nbsp;&nbsp; H&nbsp;&nbsp;&nbsp; I&nbsp;&nbsp;&nbsp; J&nbsp;&nbsp;&nbsp; K&nbsp;&nbsp;&nbsp; L&nbsp;&nbsp;&nbsp; M&nbsp;&nbsp;&nbsp; N&nbsp;&nbsp;&nbsp; O&nbsp;&nbsp;&nbsp; P&nbsp;&nbsp;&nbsp; Q&nbsp;&nbsp;&nbsp; R&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp; T&nbsp;&nbsp;&nbsp; U&nbsp;&nbsp;&nbsp; V&nbsp;&nbsp;&nbsp; W&nbsp;&nbsp;&nbsp; X&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp; Z&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp; \\&nbsp;&nbsp;&nbsp; ]&nbsp;&nbsp;&nbsp; ^&nbsp;&nbsp;&nbsp; _&nbsp;&nbsp;&nbsp; `&nbsp;&nbsp;&nbsp; a&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;&nbsp; c&nbsp;&nbsp;&nbsp; d&nbsp;&nbsp;&nbsp; e&nbsp;&nbsp;&nbsp; f&nbsp;&nbsp;&nbsp; g&nbsp;&nbsp;&nbsp; h&nbsp;&nbsp;&nbsp; i&nbsp;&nbsp;&nbsp; j&nbsp;&nbsp;&nbsp; k&nbsp;&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp; m&nbsp;&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp; p&nbsp;&nbsp;&nbsp; q&nbsp;&nbsp;&nbsp; r&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp; t&nbsp;&nbsp;&nbsp; u&nbsp;&nbsp;&nbsp; v&nbsp;&nbsp;&nbsp; w&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp; z&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; ~&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; ¡&nbsp;&nbsp;&nbsp; ¢&nbsp;&nbsp;&nbsp; £&nbsp;&nbsp;&nbsp; ¤&nbsp;&nbsp;&nbsp; ¥&nbsp;&nbsp;&nbsp; ¦&nbsp;&nbsp;&nbsp; §&nbsp;&nbsp;&nbsp; ¨&nbsp;&nbsp;&nbsp; ©&nbsp;&nbsp;&nbsp; ª&nbsp;&nbsp;&nbsp; «&nbsp;&nbsp;&nbsp; ¬&nbsp;&nbsp;&nbsp; ­&nbsp;&nbsp;&nbsp; ®&nbsp;&nbsp;&nbsp; ¯&nbsp;&nbsp;&nbsp; °&nbsp;&nbsp;&nbsp; ±&nbsp;&nbsp;&nbsp; ²&nbsp;&nbsp;&nbsp; ³&nbsp;&nbsp;&nbsp; ´&nbsp;&nbsp;&nbsp; µ&nbsp;&nbsp;&nbsp; ¶&nbsp;&nbsp;&nbsp; ·&nbsp;&nbsp;&nbsp; ¸&nbsp;&nbsp;&nbsp; ¹&nbsp;&nbsp;&nbsp; º&nbsp;&nbsp;&nbsp; »&nbsp;&nbsp;&nbsp; ¼&nbsp;&nbsp;&nbsp; ½&nbsp;&nbsp;&nbsp; ¾&nbsp;&nbsp;&nbsp; ¿&nbsp;&nbsp;&nbsp; À&nbsp;&nbsp;&nbsp; Á&nbsp;&nbsp;&nbsp; Â&nbsp;&nbsp;&nbsp; Ã&nbsp;&nbsp;&nbsp; Ä&nbsp;&nbsp;&nbsp; Å&nbsp;&nbsp;&nbsp; Æ&nbsp;&nbsp;&nbsp; Ç&nbsp;&nbsp;&nbsp; È&nbsp;&nbsp;&nbsp; É&nbsp;&nbsp;&nbsp; Ê&nbsp;&nbsp;&nbsp; Ë&nbsp;&nbsp;&nbsp; Ì&nbsp;&nbsp;&nbsp; Í&nbsp;&nbsp;&nbsp; Î&nbsp;&nbsp;&nbsp; Ï&nbsp;&nbsp;&nbsp; Ð&nbsp;&nbsp;&nbsp; Ñ&nbsp;&nbsp;&nbsp; Ò&nbsp;&nbsp;&nbsp; Ó&nbsp;&nbsp;&nbsp; Ô&nbsp;&nbsp;&nbsp; Õ&nbsp;&nbsp;&nbsp; Ö&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp; Ø&nbsp;&nbsp;&nbsp; Ù&nbsp;&nbsp;&nbsp; Ú&nbsp;&nbsp;&nbsp; Û&nbsp;&nbsp;&nbsp; Ü&nbsp;&nbsp;&nbsp; Ý&nbsp;&nbsp;&nbsp; Þ&nbsp;&nbsp;&nbsp; ß&nbsp;&nbsp;&nbsp; à&nbsp;&nbsp;&nbsp; á&nbsp;&nbsp;&nbsp; â&nbsp;&nbsp;&nbsp; ã&nbsp;&nbsp;&nbsp; ä&nbsp;&nbsp;&nbsp; å&nbsp;&nbsp;&nbsp; æ&nbsp;&nbsp;&nbsp; ç&nbsp;&nbsp;&nbsp; è&nbsp;&nbsp;&nbsp; é&nbsp;&nbsp;&nbsp; ê&nbsp;&nbsp;&nbsp; ë&nbsp;&nbsp;&nbsp; ì&nbsp;&nbsp;&nbsp; í&nbsp;&nbsp;&nbsp; î&nbsp;&nbsp;&nbsp; ï&nbsp;&nbsp;&nbsp; ð&nbsp;&nbsp;&nbsp; ñ&nbsp;&nbsp;&nbsp; ò&nbsp;&nbsp;&nbsp; ó&nbsp;&nbsp;&nbsp; ô&nbsp;&nbsp;&nbsp; õ&nbsp;&nbsp;&nbsp; ö&nbsp;&nbsp;&nbsp; ÷&nbsp;&nbsp;&nbsp; ø&nbsp;&nbsp;&nbsp; ù&nbsp;&nbsp;&nbsp; ú&nbsp;&nbsp;&nbsp; û&nbsp;&nbsp;&nbsp; ü&nbsp;&nbsp;&nbsp; ý&nbsp;&nbsp;&nbsp; þ&nbsp;&nbsp;&nbsp; ÿ"&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; unsigned char c,c2;
&nbsp;&nbsp;&nbsp; int i;
&nbsp;&nbsp;&nbsp; int tam=strlen(s);
&nbsp;&nbsp;&nbsp; for(i=0;(i&lt;tam)&amp;&amp;(s[i]!=0);i++){
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c=(unsigned char)s[i];
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //printf("%d: c=%c=%d c2=%c=%d\n",i,c,(unsigned char)c,c2,(unsigned char)c2);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c2=(unsigned char)s[i+1];
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(c==194){
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //caracteres estranhos!!!: limpa os dois caracteres
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else{
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(c==195){//algum caracter que interessa
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=128)&amp;&amp;(c2&lt;=128+6)){//À&nbsp;&nbsp;&nbsp; Á&nbsp;&nbsp;&nbsp; Â&nbsp;&nbsp;&nbsp; Ã&nbsp;&nbsp;&nbsp; Ä&nbsp;&nbsp;&nbsp; Å&nbsp;&nbsp;&nbsp; Æ
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='A';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(c2==128+7){//Ç
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='C';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=128+8)&amp;&amp;(c2&lt;=128+11)){//È&nbsp;&nbsp;&nbsp; É&nbsp;&nbsp;&nbsp; Ê&nbsp;&nbsp;&nbsp; Ë
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='E';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=128+12)&amp;&amp;(c2&lt;=128+15)){//Ì&nbsp;&nbsp;&nbsp; Í&nbsp;&nbsp;&nbsp; Î&nbsp;&nbsp;&nbsp; Ï
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='I';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(c2==144+1){//Ñ
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='N';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=144+2)&amp;&amp;(c2&lt;=144+6)){//Ò&nbsp;&nbsp;&nbsp; Ó&nbsp;&nbsp;&nbsp; Ô&nbsp;&nbsp;&nbsp; Õ&nbsp;&nbsp;&nbsp; Ö
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='O';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=144+9)&amp;&amp;(c2&lt;=144+12)){//Ù&nbsp;&nbsp;&nbsp; Ú&nbsp;&nbsp;&nbsp; Û&nbsp;&nbsp;&nbsp; Ü
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='U';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=160)&amp;&amp;(c2&lt;=128+6)){//à&nbsp;&nbsp;&nbsp; á&nbsp;&nbsp;&nbsp; â&nbsp;&nbsp;&nbsp; ã&nbsp;&nbsp;&nbsp; ä&nbsp;&nbsp;&nbsp; å&nbsp;&nbsp;&nbsp; æ
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='a';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(c2==160+7){//ç
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='c';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=160+8)&amp;&amp;(c2&lt;=160+11)){//è&nbsp;&nbsp;&nbsp; é&nbsp;&nbsp;&nbsp; ê&nbsp;&nbsp;&nbsp; ë
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='e';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=160+12)&amp;&amp;(c2&lt;=160+15)){//ì&nbsp;&nbsp;&nbsp; í&nbsp;&nbsp;&nbsp; î&nbsp;&nbsp;&nbsp; ï
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='i';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(c2==176+1){//ñ
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='n';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=176+2)&amp;&amp;(c2&lt;=176+6)){//ò&nbsp;&nbsp;&nbsp; ó&nbsp;&nbsp;&nbsp; ô&nbsp;&nbsp;&nbsp; õ&nbsp;&nbsp;&nbsp; ö
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='o';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if((c2&gt;=176+9)&amp;&amp;(c2&lt;=176+12)){//ù&nbsp;&nbsp;&nbsp; ú&nbsp;&nbsp;&nbsp; û&nbsp;&nbsp;&nbsp; ü
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s[i]='U';
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i+1);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //caracteres estranhos!!!: limpa os dois caracteres
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volta_uma_casa(s,i);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; }
}


Ficou um pouco extensa, mas funciona bem.