Ayuda strings...
#1

Buenas a todos, quisiera saber como hacer para ke no me detecte los es los espacios como strings.

ejemplo, si hago esta comparacion, me retonara siempre en false por ke detectara el espacio como string y no sera la comparacion correcta.

pawn Код:
new TextoVariable[20] = "otacon capo";
if (!strcmp(TextoVariable, "otaconcapo")) {
    //funcion...
}
Desde ya muchas Gracias.

PD para los troles: ya se ke esta comparacion no sera correcta nunca, por lo de otacon capo XDD :P.
Reply
#2

Nose mucho pero proba con "Guiуn_Bajo" _ = Espacio, Espero que te sirva, Saludos.
Reply
#3

No se a que te refieres, si pudieras explicarte mejor...
De todas formas creo que te refieres a esto:
pawn Код:
stock EliminarEspacios(string[])
{
    new N[128];
    strmid(N, string, 0, strlen(string), 128);
    for(new i = 0; i < 128; i++)
    {
        if (N [i] == ' ') N[i] = '\0';
    }
    return N;
}
Reply
#4

Quote:
Originally Posted by adri1
Посмотреть сообщение
No se a que te refieres, si pudieras explicarte mejor...
De todas formas creo que te refieres a esto:
pawn Код:
stock EliminarEspacios(string[])
{
    new N[128];
    strmid(N, string, 0, strlen(string), 128);
    for(new i = 0; i < 128; i++)
    {
        if (N [i] == ' ') N[i] = '\0';
    }
    return N;
}
Eso no funcionara por que el caracter \0 terminara el string y simplemente no es lo que quiere

pawn Код:
stock _strcmp(string1[], string2[], bool:ignorecase=false, bool:ignorespaces=false, length=cellmax)
{
    if(ignorespaces)
    {
        new eStr[255],
            eStr2[255];

        for(new i, b; string1[i]; i++)
        {
            if(string1[i] != ' ')
               eStr[b++] = string1[i];
        }
        for(new i, b; string2[i]; i++)
        {
            if(string2[i] != ' ')
               eStr2[b++] = string2[i];
        }
        return strcmp(eStr, eStr2, ignorecase, length);
    }
    else
        return strcmp(string1, string2, ignorecase, length);
}
#define strcmp _strcmp

public OnFilterScriptInit()
{
    if(strcmp("josstaa josstaa", "josstaajosstaa", true, true) == 0)
    {
        print("Son iguales!");
    }
    return 1;
}
Reply
#5

Quote:
Originally Posted by Josstaa
Посмотреть сообщение
Eso no funcionara por que el caracter \0 terminara el string y simplemente no es lo que quiere

pawn Код:
stock _strcmp(string1[], string2[], bool:ignorecase=false, bool:ignorespaces=false, length=cellmax)
{
    if(ignorespaces)
    {
        new eStr[255],
            eStr2[255];

        for(new i, b; string1[i]; i++)
        {
            if(string1[i] != ' ')
               eStr[b++] = string1[i];
        }
        for(new i, b; string2[i]; i++)
        {
            if(string2[i] != ' ')
               eStr2[b++] = string2[i];
        }
        return strcmp(eStr, eStr2, ignorecase, length);
    }
    else
        return strcmp(string1, string2, ignorecase, length);
}
#define strcmp _strcmp

public OnFilterScriptInit()
{
    if(strcmp("josstaa josstaa", "josstaajosstaa", true, true) == 0)
    {
        print("Son iguales!");
    }
    return 1;
}
Gracias josstaa , si eso era, funciona perfecto Gracias .
Saludos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)