# 文字列とその展開について

## 文字列の代入

> 一般的な代入
> 文字列の代入は、

> 変数＝「文字列」 または、 変数は、「文字列」

> のように行います。
> 文字列の連結
> 文字列同士の連結には、＆を使います。

> 変数＝「文字列」＆「文字列」

> 行をまたぐとき
> ひまわりでは、命令を複数行に分けることは出来ませんが、文字列の中だけは例外的に、複数行に記述できます。

> `変数＝「文字列１行目 文字列２行目 文字列３行目」`

> または、文字列の行末に＆つけて、次の行に繋げます。

> `変数＝「文字列１」＆ 「文字列２」＆ 「文字列３」`

> ＊ただし、上の場合は、改行記号を含まないので、「文字列１文字列２文字列３」のように、つながってしまいます。
> 改行させたい場合は、

> `変数＝「文字列１￥ｎ」＆ 「文字列２￥ｎ」＆ 「文字列３」`

> のように、改行記号を含めます。

## 文字列の展開

> 文字列中で、変数や特殊記号を展開することが出来ます。
> 変数を展開する場合は、｛変数｝のように、変数を｛｝で括ってください。

> `りんごの数は、３｛個｝。 「りんごは、｛りんごの数｝です。」と、表示。`

> もし、文字列の中で、いかなる展開も行いたくない場合は、『』います。

> プログラム | 結果 | 備考
> `りんごの数は、３｛個｝。 「りんごは、｛りんごの数｝個です。」と、表示。` | りんごは、３個です。 | 変数が展開される
> `りんごの数は、３｛個｝。 『りんごは、｛りんごの数｝個です。』と、表示。` | りんごは、｛りんごの数｝個です。 | 何も展開されない

## シーケンス文字の話

> シーケンス文字

> ￥ｎ
> ひまわりの文字列で便利な機能があります。それは、一行の中で、２行分を表現できることです。
> 以下のプログラムと、その結果を見てください。

> プログラム | 結果
> `「りんご￥ｎばなな」と、表示。` | りんご ばなな
> `「あ￥ｎい￥ｎう」と、表示。` | あ い う

> 感の良い方は、分かると思いますが、「￥ｎ」が、改行の意味を表しています。
> これが使えると、かなり便利です。

> ￥ｔ
> 他にも、タブ記号を表すシーケンス文字「￥ｔ」があります。
> タブ文字の「￥ｔ」と書くと、半角８文字で、文字を揃えて表示できます。

> プログラム | 結果
> `「りんご￥ｔ４００円」と、表示。 「なし￥ｔ３００円」と、表示。` |
> りんご | ４００円
> なし | ３００円
> `「日時￥ｔ場所￥ｔ釣れた魚の数」と、表示。 「10/10￥ｔ三ツ池￥ｔ３匹」と、表示。 「10/24￥ｔ梅田川￥ｔ０匹」と、表示。 「11/3￥ｔ豊川￥ｔ１２匹」と、表示。` |
> 日時 | 場所 | 釣れた魚の数
> 10/10 | 三ツ池 | ３匹
> 10/24 | 梅田川 | ０匹
> 11/3 | 豊川 | １２匹

> これも知っていると、ちょっと便利です。

> 困った問題
> ■解決方法１　ひらすら、￥ をつける。
> 変数の展開や、シーケンス文字の展開が便利だと分かっていただけたことと思います。
> しかし、ここで、困った問題が出てきます。
> 文字列の中で、｛　｝と、表示したいときは、どうすればいいのでしょう？
> 普通に書くと、変数の展開をしてしまいます。
> こんなときは、シーケンス文字の、￥を、｛の前につけて、￥｛と、書きます。

> プログラム | 結果
> `りんごは、３ 「｛りんご｝」と、表示。` | ３
> `りんごは、３ 「￥｛りんご￥｝」と、表示。` | ｛りんご｝

> ＊同様に、￥を、表示したい場合も、\\と、書きます。
> ところが、頻繁に｛、｝、￥が出てくる文字列を記述したいときはどうでしょう。
> 全ての文字に、￥をつけていたのでは、面倒くさくて、死にそうです。
> ■解決方法２　「」の代わりに、『』で括る
> そんなときには、変数やシーケンス文字の展開を行わない『』を使います。
> 例えば、Windowsのファイルの位置を絶対指定したいときなどは、

> c:\Program Files\Microsoft\Word\test.doc

> のように、ひたすら、￥が出現します。
> これを、「」で書くと、

> ファイルの場所は、「c:\\Program Files\\Microsoft\\Word\\test.doc」

> なのですが、『』を用いて書くと、

> ファイルの場所は、『c:\Program Files\Microsoft\Word\test.doc』

> で、済みます。
> シーケンス文字と同様に、『』を使えば、変数の展開もなされません！
> 問題解決です！

## ■文字列記号を指定できる文字列

> @@★...★　や　@@｜...｜ や @@#...# のように、@@記号と書くことで、好きな文字列記号で文字列を表すことができます。

> @@★こんにちは★と、表示。 @@＠こんにちは＠と、表示。 @@＃こんにちは＃と、表示。

> 普段あまり使わない記号の、『λ（らむだ）』などを文字列記号にすれば、ほとんどの文字列を被らないで表せると思います。
> ただし、この文字列は、展開ありの文字列なので、シーケンス記号も展開されますし、｛変数｝での変数展開も行われます。

> 値段は、４００ @@λ値段は、{値段}円です！λと、表示。

> HTMLの自動生成プログラムを打ち込んでいるときなど、「<A href=\"{変数}\">{変数}</A>」と￥"と書くのが面倒なので、@@@<A href="{変数}">{変数}</A>@と手軽に表せるようになります。

## 備考：

> 「文字列」と、"文字列"は、同じ意味になります。
> 『文字列』と、`文字列`は、同じ意味になります。
> これは、ひまわりを実行する前に、特殊な置換処理をしていることによります。
> ひまわりでは、記号やアルファベットについては、全角、半角文字を同じ物として認識します。
> その、変換の際に、「」を、" に、『』を、` に変換しているからです。
> そのため、「もじれつ」を、「もじれつ「と、書いてもエラーにはなりません。
> （いや、だからと言って、こんな変なかぎカッコを使うのはやめてください。）

> 展開なしの『文字列』で、記号`を使いたい時は、『あ``あ』のように、`を重ねると、展開されて、あ`あ、と使うことができます。

戻る