Активный
- Тема Автор
- #1
Работа со строками - основа программирования. Разберем все важные функции.
format
Форматирование строки:
Спецификаторы формата:
- %d - целое число
- %i - целое число
- %s - строка
- %f - число с плавающей точкой
- %x - шестнадцатеричное число
- %c - символ
strlen
Длина строки:
strcmp
Сравнение строк:
strfind
Поиск подстроки:
strmid
Извлечение подстроки:
strins
Вставка строки:
strdel
Удаление части строки:
strcat
Объединение строк:
strval
Преобразование строки в число:
valstr
Преобразование числа в строку:
Примеры использования
Важные моменты:
- Всегда проверяйте размер буфера перед операциями
- Строки заканчиваются нулевым символом
- Используйте sizeof() для определения размера массива
- Будьте осторожны с переполнением буферов
Правильная работа со строками - залог стабильного кода!
format
Форматирование строки:
Код:
new string[128];
format(string, sizeof(string), "Игрок: %s, Очки: %d", name, score);
// Результат: "Игрок: Player1, Очки: 100"
Спецификаторы формата:
- %d - целое число
- %i - целое число
- %s - строка
- %f - число с плавающей точкой
- %x - шестнадцатеричное число
- %c - символ
strlen
Длина строки:
Код:
new text[64] = "Hello";
new len = strlen(text); // len = 5
strcmp
Сравнение строк:
Код:
if(!strcmp(string1, string2)) // строки равны
if(!strcmp(string1, string2, true)) // сравнение без учета регистра
strfind
Поиск подстроки:
Код:
new pos = strfind(text, "search", true); // поиск с начала
if(pos != -1)
{
// подстрока найдена на позиции pos
}
strmid
Извлечение подстроки:
Код:
new source[32] = "Hello World";
new dest[32];
strmid(dest, source, 0, 5, sizeof(dest));
// dest = "Hello"
strins
Вставка строки:
Код:
new text[64] = "Hello World";
strins(text, "Beautiful ", 6, sizeof(text));
// text = "Hello Beautiful World"
strdel
Удаление части строки:
Код:
new text[64] = "Hello World";
strdel(text, 5, 11);
// text = "Hello"
strcat
Объединение строк:
Код:
new text1[64] = "Hello ";
new text2[32] = "World";
strcat(text1, text2, sizeof(text1));
// text1 = "Hello World"
strval
Преобразование строки в число:
Код:
new text[32] = "123";
new number = strval(text); // number = 123
valstr
Преобразование числа в строку:
Код:
new number = 123;
new text[32];
valstr(text, number);
// text = "123"
Примеры использования
Код:
// Проверка команды
if(!strcmp(cmdtext, "/help", true))
{
// команда /help
}
// Извлечение параметров команды
new cmd[32], params[128];
sscanf(cmdtext, "s[32]s[128]", cmd, params);
// Форматирование сообщения
new message[256];
format(message, sizeof(message), "[%s] %s: %s",
GetTimeString(), GetPlayerName(playerid), text);
// Поиск и замена
ReplaceString(text, "old", "new");
ReplaceString(string[], find[], replace[])
{
new pos = strfind(string, find);
if(pos != -1)
{
strdel(string, pos, pos + strlen(find));
strins(string, replace, pos, sizeof(string));
}
}
Важные моменты:
- Всегда проверяйте размер буфера перед операциями
- Строки заканчиваются нулевым символом
- Используйте sizeof() для определения размера массива
- Будьте осторожны с переполнением буферов
Правильная работа со строками - залог стабильного кода!