はじめに
プログラミングでは、数値だけでなく文字列を扱うことも非常に多いです。ユーザーからの入力を受け取ったり、メッセージを表示したり、ファイルにデータを記録したりする際に文字列操作は欠かせません。
このステップでは、BASICで文字列を結合したり、必要な部分だけを切り出したりする方法を学びます。これらの関数をマスターすれば、文字列をより自由に扱えるようになりますよ!
文字列の結合(+ 演算子)
複数の文字列を繋ぎ合わせて一つの文字列にするには、+ 演算子を使います。これは数値の足し算と同じ記号ですが、文字列に対して使うと結合する働きをします。
例を見てみましょう。
DIM FirstName AS STRING
DIM LastName AS STRING
DIM FullName AS STRING
FirstName = "Taro"
LastName = "Yamada"
' + 演算子で文字列を結合
FullName = FirstName + " " + LastName
PRINT FullName実行結果:
Taro Yamada このように、変数に入った文字列や、直接書いた文字列(リテラル)を + で繋ぐことができます。姓と名の間にスペースを入れるために、" " という空白文字も結合している点に注目してください。
注意: BASICの方言によっては、文字列の結合に & 演算子を使う場合もあります。また、数値と文字列を直接 + で結合しようとするとエラーになることがあるため、数値を文字列に変換する関数(後述の STR$ など)を使う必要があります。
文字列の切り出し(LEFT$, RIGHT$, MID$)
長い文字列の中から、特定の部分だけを取り出したい場合があります。BASICにはそのための便利な関数が用意されています。
LEFT$: 文字列の左側から切り出す
LEFT$(文字列, 文字数) は、指定した文字列の左端から、指定した文字数分だけを切り出して返します。
DIM MyString AS STRING
DIM LeftPart AS STRING
MyString = "ABCDEFGHIJ"
' 左から3文字を切り出す
LeftPart = LEFT$(MyString, 3)
PRINT LeftPart実行結果:
ABCRIGHT$: 文字列の右側から切り出す
RIGHT$(文字列, 文字数) は、指定した文字列の右端から、指定した文字数分だけを切り出して返します。
DIM MyString AS STRING
DIM RightPart AS STRING
MyString = "ABCDEFGHIJ"
' 右から4文字を切り出す
RightPart = RIGHT$(MyString, 4)
PRINT RightPart実行結果:
GHIJMID$: 文字列の途中から切り出す
MID$(文字列, 開始位置, 文字数) は、指定した文字列の指定した位置から、指定した文字数分だけを切り出して返します。開始位置は文字列の左端を1番目として数えます。
DIM MyString AS STRING
DIM MidPart AS STRING
MyString = "ABCDEFGHIJ"
' 3番目の文字から5文字分を切り出す
MidPart = MID$(MyString, 3, 5)
PRINT MidPart実行結果:
CDEFGMID$ 関数は、最後の引数である「文字数」を省略することもできます。省略した場合、開始位置から文字列の最後までが切り出されます。
DIM MyString AS STRING
DIM MidPartToEnd AS STRING
MyString = "ABCDEFGHIJ"
' 6番目の文字から最後までを切り出す
MidPartToEnd = MID$(MyString, 6)
PRINT MidPartToEnd実行結果:
FGHIJ ヒント: これらの関数名の最後についている $ 記号は、その関数が文字列を返すことを示す、古いBASICの名残です。最近のBASIC(FreeBASICなど)では、$ がなくても動作することが多いですが、互換性のために付けておくのが無難です。
応用例:郵便番号から市外局番を取り出す
これらの関数を組み合わせると、様々な文字列処理が可能です。例えば、日本の郵便番号(例: “100-0001″)から最初の3桁を取り出してみましょう。
DIM ZipCode AS STRING
DIM FirstThree AS STRING
INPUT "郵便番号を入力してください (例: 100-0001): ", ZipCode
' LEFT$を使って最初の3文字を取り出す
FirstThree = LEFT$(ZipCode, 3)
PRINT "最初の3桁は "; FirstThree; " です。" もし、ハイフン(-)の位置が分かっているなら、MID$ を使ってハイフン以降の部分を取り出すこともできますね。
まとめ
今回は、BASICで文字列を操作する基本的な方法として、以下の内容を学びました。
- 文字列の結合:
+演算子 - 文字列の切り出し(左から):
LEFT$関数 - 文字列の切り出し(右から):
RIGHT$関数 - 文字列の切り出し(途中から):
MID$関数
これらの関数は、テキストデータを扱うプログラムを作る上で非常に重要です。しっかり使い方を覚えて、色々な場面で活用してみてください!
次のステップでは、数値と文字列を相互に変換する方法 (STR$, VAL) を学びます。お楽しみに!