new playernametest[MAX_PLAYER_NAME], numberof=0;
GetPlayerName(playerid, playernametest, MAX_PLAYER_NAME);
for (new j=0; j<= strlen(playernametest)-1;j++)
{
printf("%c", playernametest[j]);
if(!strcmp("_", playernametest[j]))
{
numberof++;
printf(" _ found at, %i", j);
}
}
printf("numberof = %i", numberof);
[14:31:14] S [14:31:14] a [14:31:14] r [14:31:14] r [14:31:14] a [14:31:14] _ [14:31:14] T [14:31:14] e [14:31:14] s [14:31:14] t [14:31:14] i [14:31:14] n [14:31:14] g [14:31:14] _ [14:31:14] N [14:31:14] a [14:31:14] m [14:31:14] e [14:31:14] numberof = 0
if(!strcmp("_", playernametest[j]))
{
numberof++;
printf(" _ found at, %i", j); //this
}
if (playernametest[j] == '_') // ' not "
new name[9] = "Chary";
new name2[9] = "Chary";
if(strcmp(name, name2))
they are compared true.
new name[9] = "Chary";
new name2[2] = "C";
for(new i=0; i < strlen(name); i++)
{
// strfinding
if(strfind('C', name[i], true) != -1) return true;
}
return 0;
I think strcmp is not correct for searching, look example
pawn Код:
pawn Код:
strcmp to compare between two strings to check if they're the same, or i'm wrong? |
new playernametest[MAX_PLAYER_NAME] = "omg_best_test_ever_1", numberof = 0, var;
//GetPlayerName(playerid, playernametest, MAX_PLAYER_NAME);
while((var = (strfind(playernametest, "_", false))) != -1)
{
printf(" _ found at, %i", var);
strdel(playernametest, var, var + 1);
strins(playernametest, " ", var); //You can use other functions such as 'strreplace' to achieve the same result
numberof++;
}
printf("numberof = %i", numberof);
_ found at, 3 _ found at, 8 _ found at, 13 _ found at, 18 numberof = 4
This is a character not a string.
Use pawn Код:
|
new playernametest[MAX_PLAYER_NAME], numberof = 0, var;
GetPlayerName(playerid, playernametest, MAX_PLAYER_NAME);
while((var = (strfind(playernametest, "_", false))) != -1)
{
printf(" _ found at, %i", var);
playernametest[var] = ' ';
numberof++;
}
printf("numberof = %i", numberof);
Oh of course, it's just a character, my bad.
I still recommend using this: pawn Код:
|