Duda con ejercicio
Publicado por vane (4 intervenciones) el 31/08/2005 21:28:15
Hola
Que tal !!! tengo una duda con este ejercicio en C.
A partir de un archivo de texto, tengo que leer todos los caracteres y convertirlos a mayusculas (sin usar la funcion toupper ) incluyendo las letras acentuadas y las ñ. Pasa que al tratarse de un lenguaje con alfabeto ingles, no las reconoce entonces use los ALT para una letra acentuada como por ej á >> ALT + 160.
Se entiende lo que quiero hacer ???
Aca les paso el codigo... pero no me funciona... y no se porque ...
#include <stdio.h>
#include <ctype.h>
int EsNumero (const int n);
int ConvertirAMayuscula (int c);
int main () {
FILE *arch1,*arch2;
char c;
arch1 = fopen ( "original.txt", "rt");
arch2 = fopen ("nue.txt", "wt");
while ((c = fgetc (arch1)) != EOF) {
c = ConvertirAMayuscula (c);
fputc (c, arch2);}
if (EsNumero (c) != 1)
fputc(c, arch2);
fclose (arch1);
fclose (arch2);
return 0;
}
int EsNumero (const int n){
if (n >= '0' && n <= '9')
return 1;
return 0;
}
int ConvertirAMayuscula (int c)
{
switch(c)
{
case 'Alt+164':
c='Alt+165';
break;
case 'Alt+160' :
c='Á';
break;
case 'Alt+130' :
c='Alt+144';
break;
case 'Alt+162' :
c='Ó';
break;
case 'Alt+163 ' :
c='Ú';
break;
case 'Alt+161' :
c='Í';
break;
default:
c=toupper(c);
break;
}
return c ;
}
Que tal !!! tengo una duda con este ejercicio en C.
A partir de un archivo de texto, tengo que leer todos los caracteres y convertirlos a mayusculas (sin usar la funcion toupper ) incluyendo las letras acentuadas y las ñ. Pasa que al tratarse de un lenguaje con alfabeto ingles, no las reconoce entonces use los ALT para una letra acentuada como por ej á >> ALT + 160.
Se entiende lo que quiero hacer ???
Aca les paso el codigo... pero no me funciona... y no se porque ...
#include <stdio.h>
#include <ctype.h>
int EsNumero (const int n);
int ConvertirAMayuscula (int c);
int main () {
FILE *arch1,*arch2;
char c;
arch1 = fopen ( "original.txt", "rt");
arch2 = fopen ("nue.txt", "wt");
while ((c = fgetc (arch1)) != EOF) {
c = ConvertirAMayuscula (c);
fputc (c, arch2);}
if (EsNumero (c) != 1)
fputc(c, arch2);
fclose (arch1);
fclose (arch2);
return 0;
}
int EsNumero (const int n){
if (n >= '0' && n <= '9')
return 1;
return 0;
}
int ConvertirAMayuscula (int c)
{
switch(c)
{
case 'Alt+164':
c='Alt+165';
break;
case 'Alt+160' :
c='Á';
break;
case 'Alt+130' :
c='Alt+144';
break;
case 'Alt+162' :
c='Ó';
break;
case 'Alt+163 ' :
c='Ú';
break;
case 'Alt+161' :
c='Í';
break;
default:
c=toupper(c);
break;
}
return c ;
}
Valora esta pregunta


0