| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
ap0k
Registrado: 26 Nov 2007 Mensajes: 5
| Publicado: 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  |
|
| Volver arriba | |
 |
Filzix
Registrado: 30 Oct 2007 Mensajes: 15
| Publicado: 28/11/2007 12:24 pm | | | Título: |
| | pon el codigo mejor. |
|
| Volver arriba | |
 |
ap0k
Registrado: 26 Nov 2007 Mensajes: 5
| Publicado: 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  |
|
| Volver arriba | |
 |
|
Filzix
Registrado: 30 Oct 2007 Mensajes: 15
| Publicado: 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
| Publicado: 28/11/2007 2:35 pm | | | Título: |
| Muchas gracias por todo Filzix 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  |
|
| Volver arriba | |
 |
Naitmeir
Registrado: 20 Nov 2007 Mensajes: 14 Ubicación: Barcelona
| Publicado: 28/11/2007 3:22 pm | | | Título: |
| | ap0k escribió: | Muchas gracias por todo Filzix 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  |
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
| Publicado: 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
| Publicado: 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
| Publicado: 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:
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
| Publicado: 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:
Un saludo |
Gracias |
|
| Volver arriba | |
 |
|
|