none
qual a melhor forma de verificar se uma string é nula? RRS feed

Respostas

  • Olá William,

     

    Como assim verificar se é nula?

     

    Um char nome[100] é um buffer com 100 bytes alocado na pilha (stack), e nunca pode ser nulo.

     

    Agora, se o seu objetivo é saber se o buffer está vazio (sem caracteres lá dentro), então pode utilizar a função strlen, que serve para retornar a número de caracteres existentes:

     

    Code Snippet

     

     // A string está vazia?

     if (strlen(nome) == 0)

     {

    // Sim.

     }

     

     // ...

     

     // A string tem 15 caracteres?

     if (strlen(nome) == 15)

     {

    // Sim.

     }

     

     // ...

     

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 22 de janeiro de 2009 01:30
  • William,

    Você pode resolver assim também:

    Você pode verificar se a primeira célula do vetor nome é igual a '\0' que é um caracter finalizador de cadeia, ele
    indica o final da cadeia de caracteres. Se este caracter que indica o final estiver na primeira célula, logo essa cadeia está vazia.

    if( nome[0] == '\0' )
       // Vazio

    O funcionamento do strlen como mencionado pelo Caio verifica todo o array até encontrar o '\0' e retorna a quantidade de caracteres encontrados até o '\0' exceto ele.


    quinta-feira, 22 de janeiro de 2009 03:52

Todas as Respostas

  • Olá William,

     

    Como assim verificar se é nula?

     

    Um char nome[100] é um buffer com 100 bytes alocado na pilha (stack), e nunca pode ser nulo.

     

    Agora, se o seu objetivo é saber se o buffer está vazio (sem caracteres lá dentro), então pode utilizar a função strlen, que serve para retornar a número de caracteres existentes:

     

    Code Snippet

     

     // A string está vazia?

     if (strlen(nome) == 0)

     {

    // Sim.

     }

     

     // ...

     

     // A string tem 15 caracteres?

     if (strlen(nome) == 15)

     {

    // Sim.

     }

     

     // ...

     

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 22 de janeiro de 2009 01:30
  • William,

    Você pode resolver assim também:

    Você pode verificar se a primeira célula do vetor nome é igual a '\0' que é um caracter finalizador de cadeia, ele
    indica o final da cadeia de caracteres. Se este caracter que indica o final estiver na primeira célula, logo essa cadeia está vazia.

    if( nome[0] == '\0' )
       // Vazio

    O funcionamento do strlen como mencionado pelo Caio verifica todo o array até encontrar o '\0' e retorna a quantidade de caracteres encontrados até o '\0' exceto ele.


    quinta-feira, 22 de janeiro de 2009 03:52
  • Eu pensei que estava fazendo errado porque vi várias formas para verificar uma variável do tipo char se é nula ou não.

     

    Obrigado mais uma vez Caio e Eduardo!

     

    quinta-feira, 22 de janeiro de 2009 10:23