elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Que significa '\0' y para que sirve/se usa?
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Que significa '\0' y para que sirve/se usa?  (Leído 23,950 veces)
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
¿Que significa '\0' y para que sirve/se usa?
« en: 8 Julio 2010, 20:31 pm »

Tengo que hacer un ejercicio que dice:
Haz un programa que te pida una palabra, la metas y te diga el numero
de letras (no vale usar ninguna funcion tipo strlen). Recuerda que el
final de cadena lo indica el caracter '\0'

Pero no explica lo de '\0'

La solucion del ejercicio es:

#include <stdio.h>
void main()
{
   char palabra[100];
   int i=0;
   printf("Mete una palabra:");
   scanf("%s",&palabra);
   for(i=0;i<100 && palabra!='\0';i++);
   printf("\n\nLa palabra %s tiene %d letras",palabra,i);
   fflush(stdin);
   getchar();
}

pero aun no entiendo

Aclaro que no es una tarea, estoy leyendo material de programacion y me interesa aprender


En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: ¿Que significa '\0' y para que sirve/se usa?
« Respuesta #1 en: 8 Julio 2010, 20:37 pm »

De hecho si te lo explica:

Citar
Recuerda que el final de cadena lo indica el caracter '\0'

Básicamente '\0' es el carácter que indica el final de la cadena.

No estoy muy seguro que esa solución sea... correcta, de hecho es una guarrada y me parece que no realiza lo que se pide (mal copiada, ¿quizás?)


En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: ¿Que significa '\0' y para que sirve/se usa?
« Respuesta #2 en: 8 Julio 2010, 20:42 pm »

Carácter nulo.

Saludos :P
« Última modificación: 8 Julio 2010, 20:44 pm por Horricreu » En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: ¿Que significa '\0' y para que sirve/se usa?
« Respuesta #3 en: 8 Julio 2010, 20:52 pm »

Analizando el for:

for(i=0;i<100 && palabra!='\0';i++);


Mientras: I es igual a 1. Mientras I sea menor que 100 Y palabra No sea \0, aumenta en 1 I

Recorres palabra[] hasta que llegas al final de la palabra, por cada letra, le suma 1 a i.



Aparte:

Intenta no usar void main, pues el sistema espera que le devuelvas algo. Una int main, y return al final del programa.

Te dejo el código corregido (Te faltaba indicar la celda en palabra)

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.   char palabra[100];
  7.   int i=0;
  8.   printf("Mete una palabra:");
  9.   scanf("%s",palabra);
  10.   for(i=0;i<100 && palabra[i]!='\0';i++);
  11.   printf("\n\nLa palabra %s tiene %d letras",palabra,i);
  12.   fflush(stdin);
  13.   getchar();
  14. return 0;
  15. }
  16.  

Citar
serch@serch-server:~$ gcc 1.c -Wall
serch@serch-server:~$ ./a.out
Mete una palabra:sergio


La palabra sergio tiene 6 letrasserch@serch-server:~$

Consejo, lee el post de Littlehorse, sobre lo que no se debe hacer en C (Lo digo por fflush)
« Última modificación: 8 Julio 2010, 20:59 pm por Daemon Freedom » En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: ¿Que significa '\0' y para que sirve/se usa?
« Respuesta #4 en: 9 Julio 2010, 00:18 am »

Ok, ya entendi, era cuestion de interpretacion.

Dice el for
partiendo de x=0, incrementa x de 1 en 1 hasta el final de la cadena (lo que escribí).

Una cosa Daemon Freedom ¿como pones codigo con colores?
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: ¿Que significa '\0' y para que sirve/se usa?
« Respuesta #5 en: 9 Julio 2010, 00:20 am »

Ok, ya entendi, era cuestion de interpretacion.

Dice el for
partiendo de x=0, incrementa x de 1 en 1 hasta el final de la cadena (lo que escribí).

Una cosa Daemon Freedom ¿como pones codigo con colores?

Etiquetas geshi

Al escribir el post, lo ves es una esquina, seleccionas y buscas geshi + el lenguaje que vayas a escribir. Te saldrán 2 etiquetas, dentro de ellas, pon tu código
En línea

daniel077

Desconectado Desconectado

Mensajes: 1


Ver Perfil
aqui esta el programa mejorado
« Respuesta #6 en: 23 Enero 2013, 15:53 pm »

#include <stdio.h>
int main()
{
   char palabra[100];
   int i=0;
   printf("Mete una palabra:");
   gets(palabra);
   for(i=0;i< palabra;i++);
   printf("\n\nLa palabra tiene %d letras",i);
   fflush(stdin);
   getchar();
}
Código
  1.  
[/color]
« Última modificación: 23 Enero 2013, 15:55 pm por daniel077 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crackme Skrackme 1 --Aqui esta ! -- « 1 2 »
Ingeniería Inversa
skapunky 15 6,709 Último mensaje 4 Septiembre 2008, 20:51 pm
por Gevaudan
¡MessengerFlooder 2.0 ya está aquí! « 1 2 »
Mensajería
BlackNightmare 10 8,082 Último mensaje 5 Junio 2010, 18:39 pm
por saut
Ya esta aqui wifiway 2.0.1 !!!
Wireless en Linux
orion999 2 2,362 Último mensaje 13 Octubre 2010, 22:01 pm
por luiti
Ya está disponible GNOME 3.30 con un escritorio mejorado, 'cajas' de ...
Noticias
wolfbcn 0 439 Último mensaje 6 Septiembre 2018, 14:20 pm
por wolfbcn
Ya está disponible Fedora 31 con un Toolbox mejorado, GNOME 3.34 y sus ...
Noticias
wolfbcn 0 313 Último mensaje 30 Octubre 2019, 14:31 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines