[Off] Й um bom jeito?
#1

pawn Код:
new Teste[0xff];
Teste[0] = EOS;
Esse й um jeito de deixar uma string nula e ao mesmo tempo ilimitada.

Mas daн vem a questгo, й um bom jeito de usar? Hб algum ganho ? Alguma perda?
Reply
#2

O uso de bin ou hex como representaзгo nгo altera e nem dispхe ganhos na programaзгo, portanto :
Код:
new teste[255];
//e
new teste[0xff]
//sгo a mesma coisa...
a questгo de anulaзгo, posso estar errado, mas ao ser declarado como new, o espaзo de memуria jб й viabilizado como nulo, ou restos, ou seja nгo hб problemas quanto a ter de anular ela logo quando declarada.

Porйm para usos medianos, quando vocк jб fez uso da string e deseja anular ela, й sim um bom uso vocк dizer que seu primeiro нndice й o final da string(EOS, '\0'), assim vocк evita o uso de funзхes e processamento.
Reply
#3

Sу busquei isso para aprimorar conhecimentos. Atй porque uma string com o valor 0 nгo se usa nй. '.'

Mas obrigado, Willian..
Reply
#4

Sim, este й um уtimo jeito..

Quando criamos uma array, oque acontece?
pawn Код:
new str[10] = "Olб Mundo";
o computador funciona da seguinte forma:
pawn Код:
new str[10];

    str[0] = 'O';
    str[1] = 'l';
    str[2] = 'б';
    str[3] = ' '; //
    str[4] = 'M';
    str[5] = 'u';
    str[6] = 'n';
    str[7] = 'd';
    str[8] = 'o';
    str[9] = '\0'; // Mais conhecido como EOS "END OF STRING" ou tйrmino da string
Note que o EOS ou '\0' estб por ъltimo.

Agora, e se botarmos o EOS no comeзo da string?

pawn Код:
new str2[10];

    str2[0] = '\0';
    str2[1] = 'O';
    str2[2] = 'l';
    str2[3] = 'б';
    str2[4] = ' '; //
    str2[5] = 'M';
    str2[6] = 'u';
    str2[7] = 'n';
    str2[8] = 'd';
    str2[9] = 'o';

Resultados
A str irб imprimir "Olб Mundo" e a str2 irб imprimir NULL.


Existem algumas formas diferentes de verificar se a string й nula..

vou citar a principal:

pawn Код:
if(string[0] == '\0' || string[0] == '\1')
Testes
pawn Код:
public OnFilterScriptInit(){




    new str[10];

    str[0] = 'O';
    str[1] = 'l';
    str[2] = 'б';
    str[3] = ' '; //
    str[4] = 'M';
    str[5] = 'u';
    str[6] = 'n';
    str[7] = 'd';
    str[8] = 'o';
    str[9] = '\0'; // Mais conhecido como EOS "END OF STRING" ou tйrmino da string

    printf("Teste1: (str1)%s Nula: %s", str, str[0] == '\0' ? ("Sim") : ("Nгo"));


    // Oque acontece se

    new str2[10];

    str2[0] = '\0';
    str2[1] = 'O';
    str2[2] = 'l';
    str2[3] = 'б';
    str2[4] = ' '; //
    str2[5] = 'M';
    str2[6] = 'u';
    str2[7] = 'n';
    str2[8] = 'd';
    str2[9] = 'o';

    printf("Teste2: (str2)%s Nula: %s", str2, str2[0] == '\0' ? ("Sim") : ("Nгo"));
    return true;
}
Reply
#5

Obrigado gatu, -q.

Eu ia te perguntar no skype, mas nгo vi vocк on..
Reply
#6

Quote:
Originally Posted by DannielCooper
Посмотреть сообщение
Obrigado gatu, -q.

Eu ia te perguntar no skype, mas nгo vi vocк on..
Desculpe, eu voltei das fйrias.. agora estou trabalhando novamente..
quase nгo tenho tempo para nada... e sу logo na madrugada
Reply
#7

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Desculpe, eu voltei das fйrias.. agora estou trabalhando novamente..
quase nгo tenho tempo para nada... e sу logo na madrugada
trabalha nada cara larga de ser mentiroso
Reply
#8

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
trabalha nada cara larga de ser mentiroso
Nгo estou mentindo, quem me conhece de verdade sabe que eu trabalho.
Reply
#9

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Nгo estou mentindo, quem me conhece de verdade sabe que eu trabalho.
prostituiзaun nau vali
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)