Строковые функции
© 2000-2011, MetaQuotes Software Corp.
469
StringSetCharacter
Возвращает копию строки с измененным значением символа в указанной позиции.
bool StringSetCharacter(
string& string_var, // строка
int pos, // позиция
ushort character // символ
);
Параметры
string_var
[in][out] Строка.
pos
[in] Позиция символа в строке. Может быть от 0 до StringLen(text).
character
[in] Символьный код Unicode.
Примечание
Если значение pos меньше длины строки и значение символьного кода = 0, то строка усекается
(но размер буфера, распределенного под строку остается неизменным). Длина строки
становится равной значению pos.
Если значение параметра pos равняется значению длины строки, то указанный символ
добавляется в конец строки, и таким образом длина строки увеличивается на единицу.
Пример:
void OnStart()
{
string str="0123456789";
Print("before: str = ",str,",StringBufferLen(str) = ",
StringBufferLen(str)," StringLen(str) = ",StringLen(str));
//--- вставим нулевое значение посреди строки
StringSetCharacter(str,6,0);
Print(" after: str = ",str,",StringBufferLen(str) = ",
StringBufferLen(str)," StringLen(str) = ",StringLen(str));
//--- добавим символ в конец строки
int size=StringLen(str);
StringSetCharacter(str,size,'+');
Print("addition: str = ",str,",StringBufferLen(str) = ",
StringBufferLen(str)," StringLen(str) =",StringLen(str));
}
/* Результат
before: str = 0123456789 ,StringBufferLen(str) = 0 StringLen(str) = 10
after: str = 012345 ,StringBufferLen(str) = 16 StringLen(str) = 6
addition: str = 012345+ ,StringBufferLen(str) = 16 StringLen(str) = 7
*/
Смотри также
StringBufferLen, StringLen, StringFill, StringInit