Autor
|
Tema: Ayuda con programa con mayuscualas (cadena) (Leído 3,219 veces)
|
EdgarKrieger
Desconectado
Mensajes: 50
Necesito aprender mucho más
|
Hola a todos soy yo de nuevo jejejeje, bueno tengo una pregunta tengo que hacer un programa que me pida que introduzca una frase con mayúsculas y minúsculas,y me diga cuantas mayúsculas tiene, me dijeron que lo tengo que hacer con la función toupper pero realmente no tengo la mas mínima idea por favor si alguien me puede ayudar muchas gracias.
|
|
|
En línea
|
A través de los años eh aprendido que si realmente queremos hacer algo o aprender cosas nuevas necesitamos hacer muchos sacrificios como tiempo , dinero, personas, etc. y puedo decir que me falta mucho por aprender.
|
|
|
ivancea96
Desconectado
Mensajes: 3.410
ASMático
|
Sinó, puedes mirar letra a letra si su númeroi en ascii corresponde a una mayúscula (65-90)
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
toupper y tolower son para transformar a mayúscula y minúscula respectivamente. En cambio isupper e islower son para comprobar si la letra es mayúscula o minúsucula, por lo que serán estas últimas las funciones a utilizar.
Fíjate que el espacio en blanco se cuenta como minúscula, por lo que si sólo quieres contar las letras habrá que desecharlos.
Y como muestra una salida:La letra L es mayuscula. La letra e minuscula. La letra o minuscula. La letra S es mayuscula. La letra a minuscula. La letra n minuscula. La letra S es mayuscula. La letra a minuscula. La letra n minuscula. La letra R es mayuscula. La letra i minuscula. La letra R es mayuscula. Y las letras en minuscula son 7. Y las letras en mayusculas son 5.
En principio no suelo poner código a menos que el autor del tema lo haga y en realidad pregunte dudas o problemas del mismo. Pero me has pillado sensible ya que a un tema anterior que te respondí tuviste la gentileza, que creo es lo normal, de dar las gracias. Y ese gesto te honra, así que ahí va mi propuesta, mejorable seguramente:#include <stdio.h> #include <ctype.h> // para isupper int main() { int cont_min=0,cont_may=0,i; char frase []="LeoSanSan RiR";//Desactiva esto y activa los de abajo //char frase [300]; // printf("Ingrese un frase:\n"); //scanf("%300[^\n]", frase); for (i=0;frase[i];i++){ if ( frase[i]!=' '){ if ((isupper(frase[i]))==0 ){ printf("\nLa letra %c minuscula.", frase[i]);//SOBRA cont_min++; } else { printf("\nLa letra %c es mayuscula.", frase[i]);//SOBRA cont_may++; } } } printf("\nLas letras en minuscula son %d.", cont_min); printf("\nY las letras en mayusculas son %d.", cont_may); return 0; }
Otra forma es la que te indica ivancea96,más efectivo ya que el mío cuenta los signos y números como minúsculas. Pero como en el enunciado dices de hacer uso de funciones es por lo que te propongo el código anterior.Saluditos! ..... !!!! 
|
|
« Última modificación: 17 Diciembre 2013, 20:56 pm por leosansan »
|
En línea
|
|
|
|
EdgarKrieger
Desconectado
Mensajes: 50
Necesito aprender mucho más
|
|
|
|
En línea
|
A través de los años eh aprendido que si realmente queremos hacer algo o aprender cosas nuevas necesitamos hacer muchos sacrificios como tiempo , dinero, personas, etc. y puedo decir que me falta mucho por aprender.
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Perdón, se me había olvidado la función isalpha para tener en cuenta sólo los caracteres alfabéticos. Ahora ya no cuenta los espacio, números, caracteres ....:
#include <stdio.h> #include <ctype.h> // para isupper,isalpha int main() { int cont_min=0,cont_may=0,i; char frase []="LeoSanSan RiR";//Desactiva esto y activa los de abajo //char frase [300]; //printf("Ingrese un frase:\n"); //scanf("%300[^\n]", frase); for (i=0;frase[i];i++){ if ( isalpha(frase[i])!=0){ if ((isupper(frase[i]))==0 ){ printf("\nLa letra %c minuscula.", frase[i]);//SOBRA cont_min++; } else { printf("\nLa letra %c es mayuscula.", frase[i]);//SOBRA cont_may++; } } } printf("\nLas letras en minuscula son %d.", cont_min); printf("\nY las letras en mayusculas son %d.", cont_may); return 0; }
Saluditos! ..... !!!! 
|
|
|
En línea
|
|
|
|
|
|