[DUVIDA] Teorica
#1

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;

??
Reply
#2

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)
Reply
#3

explique melhor oque vc quer esatamente
Reply
#4

pawn Код:
string[4] += 400;
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.
Reply
#5

Quote:
Originally Posted by [S]trong
Посмотреть сообщение
pawn Код:
string[4] += 400;
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....
Reply
#6

Claro que seria. Pararia no primeiro ' '
Reply
#7

Quote:
Originally Posted by Luнs Miki
Посмотреть сообщение
Claro que seria. Pararia no primeiro ' '
acho que vc nao entendeu as duvidas....
Reply
#8

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.
Reply
#9

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);
Reply
#10

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)