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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.  (Leído 2,564 veces)
Tolkien

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.
« en: 1 Junio 2014, 21:56 pm »

Buenas a todos! Es la primera vez que posteo algo en un foro :huh: así que espero no incumplir ninguna norma. Mi pregunta es la siguiente:

Tengo un array de objetos, donde una de sus atributos es el nombre. Mi intención es recorrer el array de objetos y mostrar todos los objetos que tengan un nombre distinto de '/0' que según tengo entendido sirve para indicar el final de una cadena de caracteres.

[
Código:

for (hueco=0; hueco<TAMANHO_MAX; hueco++)   {
        if (BasedeDatos[hueco].nombre[0]=='\0')
            break;
    }
    if (hueco==TAMANHO_MAX){
        return ERROR;}
    BasedeDatos[hueco] = nuevaPoblacionBacterias;
    return hueco;


Esto en C me lo permitía hacer, sin embargo, al crear el objeto, el nombre de tipo char* no permite igualar un nombre a '/0' sino a "/0", que no me vale. ¿Alguna solución para esto?

Otro problema que he encontrado es que no me deja hacer la igualación del if como tal, si no que tengo que utilizar un strcmp para igualarlo y claro, no puedo igualarlo al famoso '/0'... ¿Alguna ayuda? ¿Alguna forma de compararlo para ver si está vacío distinta?

Código:

char * nombre= BasedeDatos[hueco].getnombre(); //porque nombre es protegido
        if(strcmp(nombre, "/0")==0) //teniendo problemas aquí también para hacer '/0'
            break;
    }


Espero haberme explicado bien!!! Muchas gracias por vuestra ayuda de antemano!! Un saludo!!!!!!!!! ;D ;D ;D ;D


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.
« Respuesta #1 en: 1 Junio 2014, 22:07 pm »

"\0" es una dirección de memoria. La dirección de la cadena "\0".
'\0' es un caracter. El caracter nulo o 0.

El strcmp() te permite comparar 2 cadenas. Es por eso, por lo que debes poner "\0" y no '\0'.

Por si acaso, decir que cadena=="\0" sería erróneo, ya que así comparas dos direcciones de memoria, que serán muy probablemente diferentes.

.nombre[0]=='\0' si es correcto, ya que
  • retorna el primer caracter, y lo comparas satisfactoriamente con el caracter '\0'.

    Espero que te valga :3


En línea

Tolkien

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.
« Respuesta #2 en: 5 Junio 2014, 17:28 pm »

Muchas gracias! No sabía que "\0" era el carácter nulo o vacío y que era lo mismo que '\0' pero que este es un carácter... un poco noob yo  ;D ;D

Ya he solucionado el problema, con el string compare. Muchas gracias!! ;-) ;-) :laugh: :laugh:
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines