つなげる、つながる
こんにちは!
エカキオです!
今回は文字列の連結について、ご紹介出来ればと思っています。
今までも何度か出てきました、数値と文字列の違い、
1
と
"1"
の違いですね。
今回は数値を文字列に変換するところと、文字列同士を繋げるというところをお話ししていきます。
数値を文字列に変換
数値を文字列に変換ということですが、その必要性と、数値のままの必要性とを説明します。
数値→計算出来る
文字列→計算出来ない
数値→文字と連結出来ない
文字列→文字と連結出来る
ざっとこんな感じです。
(雑ですね)
難しい内容は専門書を読んでもらえばわかると思いますので、ここでは感覚的にわかってもらえればそれでいいと思ってます。
では、さっそく。
(rtos)関数
数値から文字列に変換する時に使用する関数です。
(rtos ○ △ □)
○:数値(変数など入れる)
△:「2」を入れてください。(10進数指定)
□:小数点、小数点無しなら「0」、小数点第2位だと「2」
rtosとは
real(数値) →(to) string(文字列)
と覚えてると覚えやすいですね。
例えばこんな感じです。
(setq x 5)
(setq s1 (rtos x 2 0))
結果
s1→"5"
(setq y 3.1419)
(setq s2 (rtos y 2 3));小数点第3位まで
結果
s2→"3.142" 小数点第4位は四捨五入
このような感じです。
文字列から数値に変換する関数もあります。
atof
(atof ○)
○の文字列を実数に変換
atoi
(atoi ○)
○の文字列を整数に変換
(小数点は切り捨て)
覚えておきましょう。
連結させる関数は?
ここからは文字列同士を繋げる関数をご紹介します。
(strcat)関数
string(文字列)concatenate(連結する)
です。
concatenateは馴染みがあまりないので、覚えづらいですね。
私はネコをイメージして覚えてます。
(キャットね、キャット。)
書き方は単純に
(strcat ○ △ …)
○:1つ目の文字列
△:2つ目の文字列
…3つ目以降はいくつでも連結可能です。
例えば、
(setq a 300)
(princ (strcat "¥nこのリンゴは" (rtos a 2 0) "円です"))
結果
このリンゴは300円です
という文字が表示されます。
"¥nこのリンゴは"
(rtos a 2 0)→300→"300"
"円です"
が連結されたわけですね。
簡単にではありますが、文字の連結を紹介しました。
いかがでしたでしょうか?
だんだんと実用性のある関数が登場してきたのではないでしょうか。
まだまだ、覚える関数はたくさんありますので、どんどん紹介していければと思います。
では、この辺りで。
エカキオ