StringSetCharacter

指定された位置での文字が変更された文字列のコピーを返します。

bool  StringSetCharacter(
  string&   string_var,      // 文字列
  int      pos,              // 位置
  ushort    character        // 文字
  );

パラメータ

string_var

[in][out]  文字列

pos

[in]  文字列内での文字の位置0 から StringLen(text)

character

[in]  Unicode シンボルコード

戻り値

成功の場合は true、それ以外の場合は false。エラーコードを受け取るには GetLastError() 関数が呼ばれるべきです。

注意事項

pos が文字列の長さより少なくシンボルコードの値が 0 の場合、文字列は短く切られます(が文字列に割り当てられた バッファサイズは変わりません。)。文字列の長さは pos に等しくなります。

pos が文字列の長さと等しい場合、指定されたシンボルが文字列の終わりに追加され、長さが 1 つ長くなります。

例:

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, CharToString, ShortToString, CharArrayToString, ShortArrayToString