19.07.2014, 09:02
Quote:
This is as efficient as I could make it, without heavy use of arrays or similar.
|
I suggest that you never return a string with unknown length, what happens if src is bigger than 128 ?
pawn Код:
swap(& var1, & var2) {
#emit lref.s.pri var1
#emit lref.s.alt var2
#emit sref.s.pri var2
#emit sref.s.alt var1
}
strscramble(src[], dest[], ssize = sizeof src, dsize = sizeof dest) {
if(dsize < ssize) {
return false;
}
strcat(dest, src, dsize);
ssize = strlen(src);
dsize = 0;
while(dsize != ssize) {
swap(dest[dsize], dest[dsize + random(ssize - dsize)]);
dsize++;
}
return true;
}