/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Leer vocales de una frase que introduzcamos?

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
ap0k



Registrado: 26 Nov 2007
Mensajes: 5

MensajePublicado: 28/11/2007 10:30 am
Título: Leer vocales de una frase que introduzcamos?

Buenas,tenia una pequeña duda acerca de como realizar este programa. Llega un momento en el que me salta un error que me dice "no se puede realizar la conversión de 'char' a 'char [50]'", y por lo tanto no puedo seguir.El problema es que si le pido que me imprima la frase,me la imprime,pero al introducir el "while", me salta ese error. Gracias de antemano Razz
Volver arriba
Filzix



Registrado: 30 Oct 2007
Mensajes: 15

MensajePublicado: 28/11/2007 12:24 pm
Título:

pon el codigo mejor.
Volver arriba
ap0k



Registrado: 26 Nov 2007
Mensajes: 5

MensajePublicado: 28/11/2007 1:11 pm
Título:

Gracias Filzix,pero debe ser que soy cerrado de mente que no lo consigo.

#include <stdio.h>
#include <string.h>
int main()
{
int j=0, k=0, l=0, m=0, n=0;
char cadena[100];
gets (cadena);
while (cadena = 'a')
j++;
}


Compilando eso ya me salta con el error que comente.¿Puedes decirme donde tengo el error?(Aparte de los que pueda haber de mas,pero esos ya me zurrare yo la badana con ellos jeje).Gracias Very Happy
Volver arriba
Filzix



Registrado: 30 Oct 2007
Mensajes: 15

MensajePublicado: 28/11/2007 1:46 pm
Título:

tienes un error en el while porque al poner cadena = 'a' en teoria esta "asignando"(que en una cadena creo que se hace de otra forma) un valor a la cadena tendrias que poner ==

tambien si estas mirando si cada digito es igual que a tendrias que ponerlo asi cadena[j] == 'a'

a y tambien si pones int main(){ antes de cerrar tienes que poner return 0; }

Código:

#include <stdio.h>
#include <string.h>

int main() {

     int j=0,k=0,l=0,m=0,n=0;
     char cadena[100];
     ////AQUI TE FALTARIA UN PRINTF QUE SERIA MAS ACLARADOR PARA EL USER
     gets(cadena);

     while (cadena[j] == 'a'){
     j++;
     }

return 0;
}

creo que asi rula bien no lo he probadi
Volver arriba
ap0k



Registrado: 26 Nov 2007
Mensajes: 5

MensajePublicado: 28/11/2007 2:35 pm
Título:

Muchas gracias por todo Filzix Very Happy Consegui terminar el programa.Aqui te lo dejo por si te picaba un poquito el saber si salia o no.De la otra forma probe a intentar si funcionaba y no,no lo hacia correctamente,no se si me equivocaria en algun paso(creo que no),

#include <stdio.h>
#include <string.h>

int main()
{
char cadena[100];
char *p;
int letras_a=0, letras_e=0, letras_i=0, letras_o=0, letras_u=0;
printf ("Introduzca la frase\n");
gets (cadena);
p = cadena;
while (*p!='\0')
{
if (*p=='a') letras_a++;
if (*p=='e') letras_e++;
if (*p=='i') letras_i++;
if (*p=='o') letras_o++;
if (*p=='u') letras_u++;
p++;
}
printf("%i letras a\n", letras_a);
printf("%i letras e\n", letras_e);
printf("%i letras i\n", letras_i);
printf("%i letras o\n", letras_o);
printf("%i letras u\n", letras_u);
}

Gracias de nuevo Razz
Volver arriba
Naitmeir



Registrado: 20 Nov 2007
Mensajes: 14
Ubicación: Barcelona

MensajePublicado: 28/11/2007 3:22 pm
Título:

ap0k escribió:
Muchas gracias por todo Filzix Very Happy Consegui terminar el programa.Aqui te lo dejo por si te picaba un poquito el saber si salia o no.De la otra forma probe a intentar si funcionaba y no,no lo hacia correctamente,no se si me equivocaria en algun paso(creo que no),

#include <stdio.h>
#include <string.h>

int main()
{
char cadena[100];
char *p;
int letras_a=0, letras_e=0, letras_i=0, letras_o=0, letras_u=0;
printf ("Introduzca la frase\n");
gets (cadena);
p = cadena;
while (*p!='\0')
{
if (*p=='a') letras_a++;
if (*p=='e') letras_e++;
if (*p=='i') letras_i++;
if (*p=='o') letras_o++;
if (*p=='u') letras_u++;
p++;
}
printf("%i letras a\n", letras_a);
printf("%i letras e\n", letras_e);
printf("%i letras i\n", letras_i);
printf("%i letras o\n", letras_o);
printf("%i letras u\n", letras_u);
}

Gracias de nuevo Razz


El programa funciona si, puedes decirme que significa esta condicion (*p!='\0') Aun no la habia visto concretamente el '\0'
Volver arriba
david_celta



Registrado: 02 Jun 2005
Mensajes: 151

MensajePublicado: 28/11/2007 4:30 pm
Título:

(*p!='\0')

Eso significa que el contenido apuntado por p (un caracter) sea diferente del fin de cadena ('\0' es el fin de cadena o EOS=end of string)

una cadena por ejemplo "Hola" seria:

cadena="Hola\0" donde el \0 indica el termino de la cadena.
_________________
In all your fantasies,
you always knew
that man and mystery...

...were both in you...
Volver arriba
Naitmeir



Registrado: 20 Nov 2007
Mensajes: 14
Ubicación: Barcelona

MensajePublicado: 28/11/2007 4:36 pm
Título:

david_celta escribió:
(*p!='\0')

Eso significa que el contenido apuntado por p (un caracter) sea diferente del fin de cadena ('\0' es el fin de cadena o EOS=end of string)

una cadena por ejemplo "Hola" seria:

cadena="Hola\0" donde el \0 indica el termino de la cadena.


Ok entonces tambien seria lo mismo (*p!=EOS) ?
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3837
Ubicación: Mexico

MensajePublicado: 28/11/2007 4:56 pm
Título:

No porque no hay una macro con ese nombre, tienes que realizar la comparacion contra el valor '\0' (como ta te indicaron) en la forma:
Código:
*p != '\0'


Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
Naitmeir



Registrado: 20 Nov 2007
Mensajes: 14
Ubicación: Barcelona

MensajePublicado: 28/11/2007 4:58 pm
Título:

rir3760 escribió:
No porque no hay una macro con ese nombre, tienes que realizar la comparacion contra el valor '\0' (como ta te indicaron) en la forma:
Código:
*p != '\0'


Un saludo


Gracias
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com