a[1]="a", a[2]="b", a[3]="c",..., a[26]="z", a[27]=のようにするわけですが、これを 27 個も書くのは面倒なので、 ここでは split() を利用する方法を紹介します。" "
(はスペースを意味します)
split(s, h, r): 文字列正規表現を、正規表現
を区切りとして区切って 配列
に保存し、その個数を返す
x=split("A 23 c"
,h)
の結果は、
となります。一方、, h[1]="A", h[2]="23", h[3]="c"
""
(空文字列) を指定すると
文字列を 1 文字ずつ切り離してくれますので、
x=split("A 23 c"
,h,"")
の結果は、
となります。よって、a, h[1]="A", h[2]=
" "
, h[3]="2", h[4]="3", h[5]=" "
, h[6]=" "
, h[7]="c"
split("abcdefghijklmnopqrstuvwxyz",a,"")で作れることになります。
しかし、スペースも入れて、しかもスペースが適当に出るようにしたいので、
5 回に 1 回くらいスペースが出るようにスペースを 6 個追加して
(6/(26+6)=6/321/5)、
N=split("abcdefghijklmnopqrstuvwxyz "
,a,"")
とします。
あとは、 までの乱数を
x=int(rand()*N)+1と作って、これを 40 回やればランダムな 40 字の文字列が作れることになります。