文字列変数

文字列を入れる入れ物

文字列と文字列変数

文字列とは、文字を並べたものをいいます。スペースも文字と考えますから、単語と同じではありません。

文字列も数値と同様に変数に入れることができます。変数という名前から「数」でないものを入れるのは変なのですが、英語では variable で「変化するもの」といった意味ですので、訳語が悪いのです。

BASICでは変数名のあとに「$」をつけて文字変数であることを示す必要があります。

LET   moji$= "ABC"
PRINT moji$
END

日本語に対応したシステムの場合は文字列変数の中に全角文字を入れることができます。

文字列の連結

文字列同士をつなげるには & を使います。たとえば

LET s$ = "abc" & "def"
LET t$ = s$ & "ghi"
PRINT t$
END

を実行すると,

abcdefghi

& の代わりに + を使えるBASICもあります。

部分文字列指定

A$(m:n) と書くと、A$のm文字目からn文字目までの文字列を表わします。

LET A$="abcdef"
LET B$=A$(2:4)
PRINT B$
END

2文字目から4文字目だから結果は、

bcd

LET文の左辺の文字列変数に部分文字列指定をすることができます。 LET S$(3:5)="RSTU" はS$の3文字目から5文字目までをRSTUに置換するという意味になります。

LET S$ = "abcdefgh"
LET S$(3:5)="RSTU"
PRINT S$
END

結果は、

abRSTUfgh

十進BASICでは全角文字も半角文字も1文字は1文字とします。(実は全角文字は2バイト、半角1文字は1バイトなので、全角は1文字で2文字という数え方も成り立ちます。このようにしたいときは、はじめにOPTION CHARACTER BYTE という宣言をします。)

例7

aisatsu$ に「こんにちは」、san$ に「さん」、aite$ に自分の名前を入れておき、PRINT bun$ で「こんにちは〜〜さん」と表示されるようにプログラムしなさい。

??

結果は、

こんにちは〜〜さん  (〜〜に自分の名前)

例8

次の書き方をするとどうなるかをプログラムを作って確かめよ。

LET s$="123456789"
LET t1$=s$(4:7)
LET t2$=s$(4:12)
PRINT t1$,t2$
LET s$="123456789"
LET s$(4:7)="abcdefghijklmn"
PRINT "s$=";s$
LET u$="abcdefgh"
LET u$(2:7)=""
PRINT "u$=";u$
LET v$="abcdefgh"
LET v$(5:4)="------"
PRINT "v$=";v$
END

計算結果は、

??

聖愛高等学校
http://www.seiai.ed.jp/