Folk
Дебютант
Сейчас я вам расскажу как правильно использовать строки, ну что же, начнем:
strlen:
Возвращает кол-во символов в строке, думаю на примере все поймете:
if(!strlen(test)) - если в строке 0 символов выводится сообщение. ! - значит не было выполнено действие
strval:
Конвертирует строковой тип в числовой, пример:
strtok:
Отделяет пробел между командой и параметром, пример:
В данном случае мы проверим было ли введено /kick playerid вместе /kick.
strdel:
Удаляет подстрочку из строки, пример:
Учтите что пробел тоже идет как символ и его тоже надо учитывать, а теперь объясню параметры:
test - массив из которого удаляем
0 - символ с которого начинаем(по счету)
17 - кол-во удаляемых символов
strmid:
Извлекает определенный диапазон из переменной, увидите на примере:
Параметры:
test - массив из которого извлекаем
American Psycho - текст откуда извлекаем
10, 15 - символы от которого и до которого извлекаем
strpack:
Упаковывает в переменную определенный последовательность
И когда мы в игре введем /strpack у нас высветится: "здарова чувак"
Параметры:
message - переменная в который пакуем
"Здарова чувак" - то, что мы пакуем
strfind:
Ищет последовательность в другой последовательности.
Параметры:
"" - последовательность в которой ищем
"" - то, что мы ищем
strcmp:
Сравнивает две последовательности. Даже простая команда, вы не задумывались об ее значении? Сейчас резберем.
Параметры:
cmdtext - первая последовательность
"/test" - вторая последовательность
true/false - если true то регистр не имеет значение, если false то имеет
strcat:
Связывает несколько последовательностей в переменную:
И у нас в чат выведется 3 строки
Параметры:
teststring - переменная в которую связываем последовательности
"" - то, что мы связываем в переменную
Так как функция strtok не стандартная, то вот она вам:
Автор: Folk
strlen:
Возвращает кол-во символов в строке, думаю на примере все поймете:
PHP:
if(strcmp(cmd, "/test", true) == 0)
{
new test[256];
test = strtok(cmdtext, idx);
if(!strlen(test)) return SendClientMessage(playerid, C_RED, "Используйте /test [playerid]");
}
strval:
Конвертирует строковой тип в числовой, пример:
PHP:
new test[4] = "555";
new test2 = strval(test); // Теперь переменная test2 равна 250
Отделяет пробел между командой и параметром, пример:
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/kick", true) == 0)
{
new tmp[128];
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Юзайте: /kick [playerid]");
Kick(strval(tmp));
return 1;
}
return 0;
}
strdel:
Удаляет подстрочку из строки, пример:
PHP:
new test[64] = "Данная переменная используется для...";
strdel(test, 0, 17); // У нас останется используется для...
test - массив из которого удаляем
0 - символ с которого начинаем(по счету)
17 - кол-во удаляемых символов
strmid:
Извлекает определенный диапазон из переменной, увидите на примере:
PHP:
strmid(test, "American Psycho", 10, 15); // Мы извлекли Psycho
test - массив из которого извлекаем
American Psycho - текст откуда извлекаем
10, 15 - символы от которого и до которого извлекаем
strpack:
Упаковывает в переменную определенный последовательность
PHP:
if(strcmp(cmdtext, "/strpack", true) == 0)
{
new message[128];
strpack(message, "Здарова чувак!");
SendClientMessage(playerid, COLOR_GREY, message);
return 1;
}
Параметры:
message - переменная в который пакуем
"Здарова чувак" - то, что мы пакуем
strfind:
Ищет последовательность в другой последовательности.
PHP:
strfind("Первая последовательность, в которой ищем", "в которой ищем");
"" - последовательность в которой ищем
"" - то, что мы ищем
strcmp:
Сравнивает две последовательности. Даже простая команда, вы не задумывались об ее значении? Сейчас резберем.
PHP:
if(strcmp(cmdtext, "/test", true) == 0)
cmdtext - первая последовательность
"/test" - вторая последовательность
true/false - если true то регистр не имеет значение, если false то имеет
strcat:
Связывает несколько последовательностей в переменную:
PHP:
new teststring[64];
strcat(teststring, "First string\n");
strcat(teststring, "Second string\n");
strcat(teststring, "Third string);
SendClientMessage(playerid, COLO_RED, teststring);
Параметры:
teststring - переменная в которую связываем последовательности
"" - то, что мы связываем в переменную
Так как функция strtok не стандартная, то вот она вам:
PHP:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Последнее редактирование модератором:
