[C con Clase] duda fin de cadenas

Miguel Ángel Ordóñez maormo en gmail.com
Jue Mayo 15 22:32:22 CEST 2014


>> El segundo comentario que haces no es correcto porque tú mismo dijiste
que el carácter '\0' es igual que el valor de 0, el >> cual representa el
carácter nulo. Por lo tanto, el carácter '0' se representa de otra manera,
que realmente es el código
>> ASCII, 48.


Muchas gracias Salvador y Steven, me ha quedado muy claro con vuestra
explicación.

Así da gusto.

Un saludo.
Miguel Ángel.


El 15 de mayo de 2014, 19:45, Salvador Pozo <salvador en conclase.net>escribió:

> El pasado 2014-05-15 16:43:02, Miguel Angel Ordoñez escribió:
>
> MAO> El fin de una cadena ha de ir con el carácter nulo, que se
> corresponde con
> MAO> \0, ¿no? sin embargo en el ejemplo 9.3, veo que se añade en
> alfabeto[26] un
> MAO> cero. ¿Tiene el mismo valor el carácter ascii \0 que el cero?
>
> El compilador hace una conversión implícita durante la comparación de modo
> que si la variable de destino es un char, el cero se convierte a char
> ('\0'), si es un int, se convierte a int, si es un float a float, etc.
> Incluso, si la variable de destino es un puntero, el cero se convierte en
> un puntero nulo (NULL).
> En realidad, entre todos estos ceros sólo hay una diferencia: el espacio
> que ocupan en memoria.
>
> MAO> ¿El fin de cadena ha de ir siempre en la última posición? Es que
> choca que
> MAO> si en una cadena quiero informa un carácter cero de verdad, se
> confunda
> MAO> este con un fin de cadena.
>
> No hay posibilidad de error, ya que el carácter nulo NUNCA puede formar
> parte de una cadena, siempre señala el final, independientemente de la
> posición que ocupe, esa siempre será la que indique el final de la cadena.
> Si quieres incluir un carácter cero en una cadena, no podrás usar una
> cadena C terminada en cero. En ese caso, tendrás que usar otro tipo de
> estructura para almacenar la cadena.
>
> En rigor, el carácter nulo no puede formar parte de una cadena C. No tiene
> representación gráfica, y se usa sólo como marca.
>
> Si el cero tiene que formar parte de los valores válidos para un entero de
> un byte, no será una cadena, o al menos, no será una cadena que puedas usar
> con las funciones estándar C ni con las clases y operadores de clases para
> cadenas C++.
>
> MAO> En fin...dudas de novato. Tened paciencia.
>
> No te preocupes, pregunta todo lo que quieras. :)
>
> Hasta pronto.
>
> --
> Salvador Pozo (Administrador)
> mailto:salvador en conclase.net
> Blog con Clase: http://blogconclase.wordpress.com
> Con Clase: http://conclase.net
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
usuario registrado de GNU/Linux nº 416197
http://counter.li.org.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140515/df149ca7/attachment.html>


Más información sobre la lista de distribución Cconclase