La matriz de caracteres ASCII de cero
Las matrices en C ++ tienen un problema inherente: Nunca se puede saber, con sólo mirar a la matriz, el número de valores se almacenan realmente en él. Conociendo el tamaño de una matriz no es suficiente. Eso te dice cuántos valores de la matriz poder No sostenga, ¿cuántos realmente hace mantener.
La diferencia es como la diferencia entre la cantidad de gas del tanque de su automóvil puede contener y la cantidad de gas que en realidad tiene. Incluso si su tanque tiene capacidad para 20 galones, usted todavía necesita un medidor de gas para decirle lo mucho que está en él.
Fundamentalmente, hay dos formas de hacer el seguimiento de la cantidad de datos en un array:
Mantenga un recuento del número de valores en un separateintvariable. Esta es la técnica utilizada por el ArrayDemo programa. El código que lee la entrada del usuario no pierde de vista el número de entradas en nCount. El único problema es que el programa tiene que pasar nCount a lo largo de todas las funciones a las que ha pasado el nScores array. La matriz no es útil sin el conocimiento de la cantidad de valores que almacena.
Utilice un valor especial en la matriz como un indicador del último elemento utilizado. Por convención, esta es la técnica utilizada para matrices de caracteres en C ++.
Un carácter ASCII en particular, no es un personaje legal: ' 0'. Este carácter también se conoce como la nulo personaje. Es el personaje con un valor numérico de cero. Un programa puede utilizar la nulo personaje como el final de una cadena de caracteres.
El carácter nulo no tiene otro propósito que marcó el final de un array de caracteres. El usuario no puede entrar un carácter nulo. Esto significa que usted no tiene que pasar una variable de recuento separado alrededor - siempre se puede decir al final de la cadena mediante la búsqueda de un nulo.
Los diseñadores de C y C ++ le gusta esta característica tan bien que se asentaron en él como el estándar para cadenas de caracteres. Incluso le dieron un nombre: el ASCII de cero matriz o ASCIIZ para abreviar.
los nulo personaje tiene otra propiedad ventajosa. Es el único personaje cuyo valor se considera falso en una expresión de comparación (tal como en un bucle o un si declaración).
Recuerde que 0 o nulo se considera falso. Todos los demás valores se evalúan como cierto. Esto hace que los bucles de escritura que manipulan cadenas ASCIIZ aún más fácil.