y no śe como arreglarlo.
El código sería el siguiente:
Código C:
Ver original
/*Función convierteMinus @param n E/S variable que almacena el carácter a convertir en minúscula return: n devuelve el carácter en minúscula*/ char convierteMinus(char n) { char nu; if(n == 'Á') nu = 'á'; if(n == 'É') nu = 'é'; if(n == 'Í') nu = 'í'; if(n == 'Ó') nu = 'ó'; if(n == 'Ú') nu = 'ú'; if(n != 'Á' && n != 'É' && n != 'Í' && n != 'Ó' && n != 'Ú') nu = n - ('a' - 'A'); return nu; } /*Función convierteMayus @param n E/S variable que almacena el carácter a convertir en mayúscula return: n devuelve el carácter en mayúscula*/ char convierteMayus(char n) { char nu; if(n == 'á') nu = 'Á'; if(n == 'é') nu = 'É'; if(n == 'í') nu = 'Í'; if(n == 'ó') nu = 'Ó'; if(n == 'ú') nu = 'Ú'; if(n == 'Ñ') nu = 'ñ'; if(n != 'á' && n != 'é' && n != 'í' && n != 'ó' && n != 'ú') nu = n + ('a' - 'A'); return nu; } /*Función convierteCadena @param cad[] E/S es la cadena que nos llega para convertir a Nombre Propio return: no devuelve nada*/ void convierteCadena(char cad[]) { int i = 0; char letra; while(cad[i] != '\0') { if(cad[i] != '\0') { if(cad[i] == ' ') { ++i; /*CONVERTIR A MAYÚSCULA */ letra = cad[i]; cad[i] = convierteMayus(letra); ++i; } else { if(i == 0) { /*CONVERTIR A MAYÚSCULA */ letra = cad[i]; cad[i] = convierteMayus(letra); ++i; } else { /*CONVERTIR A MINÚSCULA */ letra = cad[i]; cad[i] = convierteMinus(letra); ++i; } } } else } }
el problema esta en las funciones de arriba.
gracias!