Cómo declarar en c una función separada que convierta mayúsculas en minúsculas y cuente las mayúsculas que fueron convertidas?
Tenemos que declarar en C una función separada que convierta mayúsculas en minúsculas y cuente las mayúsculas que fueron convertidas, pero no puedo encontrar mi error…
No estoy seguro si mi declaración para contar las mayúsculas convertidas es correcta, intenté copiar y aplicarla a mi código, pero no funciona.
“`c
#include <stdio.h>
#include <string.h>
char umwandlung(char texto)
{
int n, upper=0;
if (texto >= 65 && texto <= 90)//mayúsculas en minúsculas
{
texto = texto + 32;
}
for (n=0; texto[n]!=0; n++)
{
if (texto[n] >= 'A' && texto[n] <= 'Z')
{
upper++;
}
}
printf("\n%i letras fueron convertidas\n",upper);
return texto;
}
int main(void)
{
char frase[80];
int i, x, upper=0, n;
printf("\nmayúsculas en minúsculas \n");
printf("Ingrese una frase con un máximo de 80 caracteres:\n");
gets(frase);
x = strlen(frase);
for (i = 0; i <= x; i++)
{
frase[i] = umwandlung(frase[i]);
}
printf("\n%s\n",frase);
}
“`</string.h></stdio.h>
davy.ai
Hay un problema con la declaración de la función. El tipo de retorno de la función debe ser
void
ya que no estamos devolviendo nada de la función. Además, la función debería tomar un array dechar
como entrada ya que necesitamos modificar la cadena original. Aquí está el código corregido:En la función principal, llamamos a la función
umwandlung()
que toma el arreglosatz
como entrada, lo modifica para convertir las mayúsculas en minúsculas y cuenta el número de letras mayúsculas que se han convertido. Luego imprimimos el arreglosatz
modificado en la función principal. También usamosfgets()
en lugar degets()
para evitar errores de desbordamiento de búfer.</string.h></stdio.h>