Next: 文字および文字列の比較, Previous: 文字列の作成, Up: 文字列と文字 [Contents][Index]
このセクションで説明する処理を介して変更可能な文字列のコンテンツを変更できます。可変性を参照してください。
既存の文字列の内容を変更するもっとも基本的な方法は、aset
(配列を操作する関数を参照)を使用する方法です。(aset string idx char)
は、stringの文字インデックスidxに、charを格納します。これはstringが純正なASCIIなら必要に応じてマルチバイト文字列(テキストの表現方法を参照)に変換しますが、charがrawバイトではなく非ASCII文字の場合には、たとえばstring-to-multibyte
(テキスト表現の変換を参照)を使う等により、stringがマルチバイトになるよう常に保証することをお勧めします。
より強力な関数はstore-substring
です:
この関数は文字インデックスidxで開始される位置にobjを格納することにより、指定されたstringの内容の一部を変更する。objは文字(この場合にはaset
とまったく同じように振る舞う)、または(stringより小さい)文字列。objがマルチバイト文字列の場合には、たとえstringが純正のASCII文字列であってもマルチバイト文字列に変更することを推奨する。
既存の文字列の文字数を変更するのは不可能なので、文字インデックスidxを開始位置としたときにobjがstringに収まらないような文字数で構成される場合にはエラーとなる。
パスワードを含む文字列をクリアーするときにはclear-string
を使用します:
これはstringをユニバイト文字列にして、内容を0にクリアーする。これによりstringの長さも変更されるだろう。