[DUVIDA] Teorica -
dudaefj - 10.08.2011
Galera
as strings sгo convertidas usando a ASCII ??
o que acontece se tiver, por exemplo,
string[MAX] = "testando uma string";
string[4] += 10;
e oq acontece se fizer
string[4] += 400;
??
Re: [DUVIDA] Teorica -
ViniBorn - 10.08.2011
Sim...
Inclusive algumas pessoas utilizam essa forma simples para encriptar senhas.
pawn Код:
stock Encriptar(senha[])
{
new NovaSenha[16];
for(new c = 0; c <= strlen(senha); c++)
NovaSenha[c] = (senha[c] += 2);
return NovaSenha;
}
Se a senha for 12345 , por exemplo.
Usando esse encriptador simples, a nova senha й : 34567
Sendo assim, se vocк aumenta em 10 o conteъdo de string[4] (Posiзгo 4 da string), o novo conteъdo vai ser o conteъdo do valor atual aumentado em 10, de acordo com a tabela ASCII.
Traduzindo, se o conteъdo й a letra 'a' (97 na tabela), o novo conteъdo vai ser 'k' (107 na tabela)
Re: [DUVIDA] Teorica -
MaGnO_357 - 10.08.2011
explique melhor oque vc quer esatamente
Re: [DUVIDA] Teorica - [S]trong - 10.08.2011
Nгo aconteзe nada. Ele volta ao comeзo mas continuando a valer 400+ o valor antigo da string.
pawn Код:
Encode(string[])
{
new
ii = -1;
while(string[++ii])
string[ii] += 80;
return 0;
}
Nгo precisa retorna a string neste caso. Ele vai fazer todo o processo na string por tanto nгo precisa retornar a nada, facepalm. A menos que vocк queira guardar o valor da string em outra string o que nгo tem necessнdade.
Re: [DUVIDA] Teorica -
dudaefj - 10.08.2011
Quote:
Originally Posted by [S]trong
Nгo aconteзe nada. Ele volta ao comeзo mas continuando a valer 400+ o valor antigo da string.
|
como assim volta ao comeco??
se era a letra "a" na tabela ASCII, ou seja, como o Viniborn disse, nъmero 97 na ASCII, vai passar a ser 497.
ok...
mas que simbolo entгo essa string vai representar
e outra coisa
dessa forma a funзгo strtok nao faz o menor sentido pra mim...
PHP код:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
essa parte, em especifico:
PHP код:
while ((index < length) && (string[index] <= ' '))
se tivermos string = "/abrir casa"
pela
tabela ASCII, o espaзo (' ') tem valor 32, portanto esse while nem seria executado....
Re: [DUVIDA] Teorica -
steki. - 10.08.2011
Claro que seria. Pararia no primeiro ' '
Re: [DUVIDA] Teorica -
dudaefj - 10.08.2011
Quote:
Originally Posted by Luнs Miki
Claro que seria. Pararia no primeiro ' '
|
acho que vc nao entendeu as duvidas....
Re: [DUVIDA] Teorica -
steki. - 10.08.2011
Ele vai fazer um loop de 0 atй o valor de caracteres.
Se o nъmero atual do looop й menor doque o numero mбximo de caracteres e o valor do caractere atual for um espaзo, ou seja, 32, para o loop.
Й exatamente o que quer.
Re: [DUVIDA] Teorica - [S]trong - 10.08.2011
Quote:
Originally Posted by dudaefj
como assim volta ao comeco??
se era a letra "a" na tabela ASCII, ou seja, como o Viniborn disse, nъmero 97 na ASCII, vai passar a ser 497.
ok...
mas que simbolo entгo essa string vai representar
e outra coisa
dessa forma a funзгo strtok nao faz o menor sentido pra mim...
PHP код:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
essa parte, em especifico:
PHP код:
while ((index < length) && (string[index] <= ' '))
se tivermos string = "/abrir casa"
pela tabela ASCII, o espaзo (' ') tem valor 32, portanto esse while nem seria executado....
|
Presta atenзгo: 0,1,2,3,4,5,6,7,8,9 PAROU agora teremos o 10, o 10 vai valer o 0 meu amigo o 11 vai valer o 1... Acho que deve ter entendido onde eu quero chegar. Caso queira testar o que eu estou a dizer
pawn Код:
printf("%s",257);
printf("%s",1);
printf("%s",258);
printf("%s",2);
Re: [DUVIDA] Teorica -
dudaefj - 10.08.2011
Quote:
Originally Posted by Luнs Miki
Ele vai fazer um loop de 0 atй o valor de caracteres.
Se o nъmero atual do looop й menor doque o numero mбximo de caracteres e o valor do caractere atual for um espaзo, ou seja, 32, para o loop.
Й exatamente o que quer.
|
definitivamente nгo й isso.
se o valor do caractere autal for MAIOR que um espaзo, ou seja, 32, ele pбra o loop.
ou seja
ele nem entraria no loop...
experimentalmente sabemos que nгo й assim que a funзгo se comporta... pois ela varre atй chegar no espaзo.
agora... pq?
Quote:
Originally Posted by [S]trong
Presta atenзгo: 0,1,2,3,4,5,6,7,8,9 PAROU agora teremos o 10, o 10 vai valer o 0 meu amigo o 11 vai valer o 1... Acho que deve ter entendido onde eu quero chegar. Caso queira testar o que eu estou a dizer
pawn Код:
printf("%s",257); printf("%s",1); printf("%s",258); printf("%s",2);
|
sua explicaзгo foi meio confusa mas entendi perfeitamente
vlw kara xD
isso ae ja entendi, mas continua nao fazendo sentido a funзгo strtok pra mim :S