Función de no impresión.
Por favor, necesito ayuda.
Estoy escribiendo un programa para contar e imprimir vocales y consonantes utilizando punteros y funciones. Mi código se compila correctamente, pero no muestra los resultados.
Muestra cualquiera de los siguientes mensajes: “Your text count: 0 vowels and 0 consonants” o “Segmentation fault”.
No puedo encontrar el problema.
“`c
#include <stdio.h>
#include <string.h>
#define SIZE 1000
void voyelle(char *word)
{
int i,n,cons=0,vowel=0;
n=strlen(word);
while(<em>word<n) {="" if((</em>word="">='a'&& <em>word<='z')||(</em>word>='A'&& <em>word<='Z'))
{
if(</em>word=='a'|| <em>word=='A'|| *word=='e'||</em>word=='E'||<em>word=='i'||</em>word=='I'||<em>word=='o'||</em>word=='O'||<em>word=='u'||</em>word=='U')
{
vowel++;
}
else
cons ++;
}
word++;
}
printf(" Your text count:%d vowels and %d consonnants",vowel,cons);
}
int main(void)
{
char text[SIZE];
printf("Input your text: ");
fgets(text,SIZE,stdin);
voyelle(text);
return 0;
}
“`</n)></string.h></stdio.h>
davy.ai
Hay un par de errores en tu código que podrían estar causando el problema.
En primer lugar, en la condición de tu bucle while, estás comparando un puntero (*word) y un entero (n). Esto puede causar un comportamiento inesperado ya que no son del mismo tipo. En su lugar, deberías desreferenciar el puntero y compararlo con el carácter nulo (‘\0’) para comprobar el final de la cadena.
En segundo lugar, en tu declaración printf, hay un error tipográfico donde escribiste mal “consonants”.
Aquí tienes el código corregido con comentarios:
Haz estos cambios y vuelve a probar el programa. Ahora debería contar e imprimir el número de vocales y consonantes en el texto de entrada. Si aún encuentras problemas, por favor proporciona el mensaje de error que estás recibiendo.</string.h></stdio.h>