A matriz de caracteres ascii de zero

Arrays em C ++ têm um problema inerente: Você nunca pode saber, só de olhar para a matriz, quantos valores são realmente armazenados nele. Sabendo o tamanho de uma matriz não é suficiente. Isso diz-lhe quantos valores da matriz posso segurar, não quantas ele realmente faz aguarde.

A diferença é como a diferença entre a quantidade de gás do tanque do seu carro pode segurar e quanto gás ele realmente tem. Mesmo que o seu tanque tem 20 litros, você ainda precisa de um medidor de gás para dizer o quanto está nele.

Existem basicamente duas maneiras de manter o controle da quantidade de dados em uma matriz:

Manter uma contagem do número de valores em uma separateintvariable. Esta é a técnica utilizada pela ArrayDemo programa. O código que lê a entrada do usuário mantém o controle do número de entradas na nCount. O único problema é que o programa tem de passar nCount junto a cada função para a qual ele passou a nScores matriz. A matriz não é útil sem o conhecimento de quantos valores ele armazena.

  • Use um valor especial na matriz como um indicador do último elemento usado. Por convenção, esta é a técnica utilizada para matrizes de caracteres em C ++.



  • Uma caracteres ASCII em particular, não é um personagem legal: ‘’. Este personagem é também conhecido como o nulo personagem. É o personagem com um valor numérico de zero. Um programa pode usar o nulo personagem como o fim de uma sequência de caracteres.

    O caractere nulo não possui senão sinalizando o fim de um array de caracteres propósito. O usuário nunca pode inserir um caractere nulo. Isso significa que você não tem que passar uma variável contagem separada ao redor - você pode sempre dizer a final da cadeia, procurando por um nulo.

    Os designers de C e C ++ gostou deste recurso tão bem que eles se estabeleceram nele como o padrão para cadeias de caracteres. Eles até mesmo deram-lhe um nome: o ASCII de zero ou matriz ASCIIZ abreviado.

    o nulo personagem tem outra propriedade vantajosa. Ele é o único personagem cujo valor é considerado falso em uma expressão de comparação (tal como em um loop ou um E se declaração).

    Lembre-se que 0 ou nulo é considerado falso. Todos os outros valores avaliar a verdade. Isso faz com loops de escrita que manipulam cordas ASCIIZ ainda mais fácil.


    Publicações relacionadas