Autor
|
Tema: [src]Hello world (Leído 4,185 veces)
|
0x3c
Desconectado
Mensajes: 108
learning, making mistakes, having fun
|
Hola bueno como ya dije en otro post, estoy empezando a programar en C por lo tanto decidi hacer uno de esos programas "Hello world" pero de una forma un tanto diferente.. Aqui el codigo: #include <stdio.h>
int main() { char hello[5]; char world[6]; printf("Como se dice \"hola\" en ingles?.\n"); scanf("%s",hello); printf("Como se dice \"mundo\" en ingles?.\n"); scanf("%s",world); printf("En ingles \"Hola mundo\" se dice %s %s!!.",&hello,&world); }
Denme su opinion, ahora quiero codear otro, de forma diferente.... saludos
|
|
|
En línea
|
Si Vis Pacem, Para Bellum.Another Legend Has Fallen
|
|
|
|
0x3c
Desconectado
Mensajes: 108
learning, making mistakes, having fun
|
gracias por tomarte tiempo para ver el code ....quiero hacer otro codigo pero es para "afilar mis garras" por cierto gracias por el link saludos
|
|
« Última modificación: 24 Diciembre 2012, 01:32 am por n3t_3rr0r »
|
En línea
|
Si Vis Pacem, Para Bellum.Another Legend Has Fallen
|
|
|
durasno
Desconectado
Mensajes: 373
|
Hola! cuando compilaste el codigo debio haberte tirado un warning(sino lo hizo cambia de compilador). EL problema esta en hacer &hello y &world, esos "&" estan demas(mas adelante vas a entender que significaria)
Saludos
PD: para el otro post tenes la funcion atol
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
0x3c
Desconectado
Mensajes: 108
learning, making mistakes, having fun
|
no, no tuve ningun tipo de problema compilando este programa, se muy bien de lo que estas hablando, pero funciona tambien si le pones el "&" a la variable dentro de scanf..
saludos
|
|
|
En línea
|
Si Vis Pacem, Para Bellum.Another Legend Has Fallen
|
|
|
naderST
|
Cuando declaras el arreglo hello te olvidaste de dejar un espacio para el caracter nulo (\0). En este caso funciona lo de &hello y &world solo porque son arreglos.
|
|
|
En línea
|
|
|
|
0x3c
Desconectado
Mensajes: 108
learning, making mistakes, having fun
|
Cuando declaras el arreglo hello te olvidaste de dejar un espacio para el caracter nulo (\0). En este caso funciona lo de &hello y &world solo porque son arreglos.
a que te refieres con dejar un espacio para caracter nulo? a mi pobre entender este codigo debe funcionar bien con o sin "&"...explicate mas claramente. saludos
|
|
|
En línea
|
Si Vis Pacem, Para Bellum.Another Legend Has Fallen
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
* Al utilizar el operador "dirección de" (el '&') con un array el puntero resultante es (en tu caso) de tipo "char (*)[N]" mientras que scanf espera un puntero de tipo "char *". Tal vez funcione pero el tipo no es el esperado por la función.
* En C una cadena es una secuencia de caracteres seguida del carácter '\0', este no es parte de la cadena, la delimita. Por ello si quieres almacenar las cadenas "Hello" y "World" necesitas dos arrays con una capacidad de seis caracteres (en tu ejemplo el primer array solo puede almacenar cinco).
* Utilizas scanf con el especificador "%s", ello es igual de malo que utilizar gets ya que la función lee y almacena todos los caracteres que pueda. En su lugar debes utilizar "%Ns" donde N es el numero de caracteres (menos uno) que se puede almacenar en el array. El "menos uno" es para reservar espacio para el delimitador, el '\0'.
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
0x3c
Desconectado
Mensajes: 108
learning, making mistakes, having fun
|
bien, gracias por corregir mi codigo...y tomarse el tiempo para leerlo acuerdense que soy novato xD * Utilizas scanf con el especificador "%s", ello es igual de malo que utilizar gets ya que la función lee y almacena todos los caracteres que pueda. En su lugar debes utilizar "%Ns" donde N es el numero de caracteres (menos uno) que se puede almacenar en el array. El "menos uno" es para reservar espacio para el delimitador, el '\0'.
no soy experto en el asunto ni nada de eso pero a mi entender no veo que mi codigo tenga un array segun he visto en otros codigos un array(si no mal recuerdo) es una sentencia del tipo: [codigo] var nombrequequierodarleamivariable[] = {valor valor valor valor}; [/quote] no estoy seguro, pero corrigeme si me equivoco.... saludos
|
|
|
En línea
|
Si Vis Pacem, Para Bellum.Another Legend Has Fallen
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
no soy experto en el asunto ni nada de eso pero a mi entender no veo que mi codigo tenga un array segun he visto en otros codigos un array(si no mal recuerdo) es una sentencia del tipo: var nombrequequierodarleamivariable[] <==esto es un array¡¡¡ y esto otro su valor==>= {valor valor valor valor}; Por lo tanto: char hello[5],world [6] son arrays ¡ ¡ ¡
no estoy seguro, pero corrigeme si me equivoco.... Sí hombre, cuando hello y world tomen el valor de hola y mundo serán:hello[5]={'h','o','l','a','\0'} world [6]={'m','u','n','d','o','\0'}[
Y por cierto, los tamaños están bien declarados, aunque sospecho que por chiripa. Saluditos!. ...........
|
|
« Última modificación: 2 Enero 2013, 17:00 pm por leosansan »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Digimon world 2 psx
Juegos y Consolas
|
TheChivo
|
0
|
1,602
|
5 Agosto 2004, 12:31 pm
por TheChivo
|
|
|
World Of Warcraft
Juegos y Consolas
|
brazilian
|
0
|
1,466
|
12 Mayo 2006, 03:34 am
por brazilian
|
|
|
World of Goo
Juegos y Consolas
|
© Shadoweps ツ
|
2
|
1,934
|
15 Febrero 2009, 20:41 pm
por © Shadoweps ツ
|
|
|
The best pc in the world?
Hardware
|
noker613
|
5
|
3,809
|
19 Enero 2012, 23:34 pm
por kmorfo
|
|
|
Divertimento: Hello world!
Programación C/C++
|
MAFUS
|
0
|
1,171
|
27 Agosto 2019, 19:04 pm
por MAFUS
|
|