SA-MP Forums Archive
Замена символов в строке - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Замена символов в строке (/showthread.php?tid=570915)



Замена символов в строке - nonamepawn - 14.04.2015

PHP код:
stock ShowPlayerFooter(playeridstring[], time 5000)
{
    static 
newstring[256];
    for (new 
0sizeof(string); i++;) {
        
newstring[i] = '_';
    }
    if (
PlayerData[playerid][pShowFooter]) {
        
PlayerTextDrawHide(playeridPlayerData[playerid][pTextDraws][0]);
        
PlayerTextDrawHide(playeridPlayerData[playerid][pTextDraws][1]);
        
KillTimer(PlayerData[playerid][pFooterTimer]);
    }
    
PlayerTextDrawSetString(playeridPlayerData[playerid][pTextDraws][0], string);
    
PlayerTextDrawSetString(playeridPlayerData[playerid][pTextDraws][1], bgstring);
    
PlayerTextDrawShow(playeridPlayerData[playerid][pTextDraws][0]);
    
PlayerTextDrawShow(playeridPlayerData[playerid][pTextDraws][1]);
    
PlayerData[playerid][pShowFooter] = true;
    
PlayerData[playerid][pFooterTimer] = SetTimerEx("HidePlayerFooter"timefalse"d"playerid);

Вообщем, нужно узнать количество символов в string[], но что то не выходит.
Quote:

indeterminate array size in "sizeof" expression (symbol "")




Re: Замена символов в строке - nonamepawn - 14.04.2015

Вообщем уже сам допер как все таки
PHP код:
stock ShowPlayerFooter(playeridstring[], time 5000)
{
    static 
bgstring[256];
    
    for (new 
0strlen(string); i++) {
        
bgstring[i] = '_';
    }
    
    if (
PlayerData[playerid][pShowFooter]) {
        
PlayerTextDrawHide(playeridPlayerData[playerid][pTextDraws][0]);
        
PlayerTextDrawHide(playeridPlayerData[playerid][pTextDraws][1]);
        
KillTimer(PlayerData[playerid][pFooterTimer]);
    }
    
    
PlayerTextDrawSetString(playeridPlayerData[playerid][pTextDraws][0], bgstring);
    
PlayerTextDrawSetString(playeridPlayerData[playerid][pTextDraws][1], string);
    
    
PlayerTextDrawShow(playeridPlayerData[playerid][pTextDraws][0]);
    
PlayerTextDrawShow(playeridPlayerData[playerid][pTextDraws][1]);
    
PlayerData[playerid][pShowFooter] = true;
    
PlayerData[playerid][pFooterTimer] = SetTimerEx("HidePlayerFooter"timefalse"d"playerid);




Re: Замена символов в строке - stabker - 14.04.2015

Лучше длину записывать в отдельную переменную и уже сверять по ней. Типа:

pawn Код:
new length = strlen(string);
for (new i = 0; i < length; i++) {
        bgstring[i] = '_';
}
...