文字列操作

上へ

述語名/引数  (strcat 文字列1 文字列2 *X)
要約 文字列1と文字列2を結合し、*Xに代入します。
互換性 Win Unix
解説 N/A

例:

(strcat "山のなか" "川の中" *X)

 

 


述語名/引数  (strlen 文字列  *X)
要約 文字列の長さを整数として*Xに代入します。
互換性 Win Unix
解説 N/A

例:

(strlen "山川" *L)

 

 


述語名/引数  (substr 文字列  *start *end *X)
要約 文字列の部分文字列を*Xに代入します。
互換性 Win Unix
解説 *startには、文字列の開始位置を、*endには部分文字列の長さをそれぞれ指定します。
位置の指定では、0が先頭をあらわします。

例:

(substr "abcd山" 0 1 *X)

結果:(substr "abcd山" 0 1 "a")

 

 


述語名/引数  (split 文字列  パターン文字列 *X)
要約 文字列をパターン文字列で分割し*Xに代入します。
互換性 Win Unix
解説 N/A

例:

(split "aaa1bbb111ccc11111" "1" *X)

結果:(split "aaa1bbb111ccc11111" "1" ("aaa" "bbb" "ccc"))

 

 


述語名/引数  (replace <文字列>  <パターン文字列> <置き換える文字列> <繰り返す数>)
 (replace <文字列>  <置き換え後の文字列> <パターン文字列> <置き換える文字列> <繰り返す数>)
要約 <文字列>の<パターン文字列>とマッチする部分文字列を、<置き換える文字列>で置き換えます。このことを<切り返す数>だで繰り返します。
互換性 Win Unix
解説 前者の形式は、文字列をそのものを置き換えるため正当性に関する注意が必要です。
<繰り返す数>に0を指定した場合、可能な全ての部分文字列を置換します。

例:

(replace "test12test12test12" "12" "34" 2)

結果:(replace "test34test34test12" "12" "34" 2)

 

以下の例では、意図した動作になりません。後者の形式のreplaceを使用してください。

(as (safe_replace *x *y *p *r *n):(copy *x *y)(replace *y *p *r *n))

 


述語名/引数  (sprintf *out *format *s)
要約 書式化された文字列を*outに出力します。
互換性 Win Unix
解説 指定できる書式化指定子はCランタイムライブラリのsprintfと同じです。

 

 


述語名/引数  (sformat *out *format *s)
要約 *outに文字列としてs式を出力します。
互換性 Win Unix
解説 書式化指定子
/a s式
/d 数字
/s 文字列
/t タブ
// /
/n 改行

sformatはs式を表示できる点でsprintfより優れています。逆に書式化の多様性はsprinfが優れています。