[Pedido] Como fazer um comparador de strings?
#1

Queria fazer um comparador de strings sem usar o proprio STRCMP.

Tem algum modo de fazer isso?
Reply
#2

vc pode usar:
strcmp(str1,str2,ignorecase)==0 (compara duas strings se for 0 significa que sao iguais)

vc tambem pode dar include no dutils e usar:

equal(str1[],str2[],bool:ignorecase)

Reply
#3

https://sampforum.blast.hk/showthread.php?tid=474838
De uma olhada nos codigos do topico.
Reply
#4

DanDRT.. Dei uma olhada nos scripts la sу que nгo entendi esse calculo: result = ( a > b ) ? b : a;
Reply
#5

Quote:
Originally Posted by PawnoBrasil[xPBx]
Посмотреть сообщение
DanDRT.. Dei uma olhada nos scripts la sу que nгo entendi esse calculo: result = ( a > b ) ? b : a;
Bem, eu criei essa funзгo, sou o melhor pra te explicar...

Eu usei um operador ternбrio, basicamente ele verifica se A й maior que B, caso A seja maior, meu result serб igual a B, e caso B seja maior, meu result serб A.

Foi apenas uma otimizaзгo, e tratamento de exceзхes tambйm. Por exemplo, a string "teste" й igual a string "teste " atй o espaзo, dai elas jб ficam diferentes, mas com esse cбlculo que vocк citou ela vai comparar somente "teste" com "teste".

Resumidamente, esse cбlculo serve para ver qual й a menor string, para o loop lб em baixo rodar menos vezes e comparar somente a parte necessбria das strings.

"[TuT] Operaзгo ternбria", by zSuYaNw
Reply
#6

tu tem que verificar se a string й igual a string2, para isso tem de percorrer todas as duas strings verificando char-by-char, por isso todas as funзхes lб usam loops.

Abraзos
Reply
#7

ainda prefiro usar a funзгo do equal do include dutil:
pawn Код:
stock equal(str1[],str2[],bool:ignorecase) {
    if (strlen(str1)!=strlen(str2)) return false;
    if (strcmp(str1,str2,ignorecase)==0) return true;
    return false;
}
acho mais eficiente
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)