「文字列処理」の編集履歴(バックアップ)一覧に戻る
文字列処理」を以下のとおり復元します。
文字列処理は重要です。ポインタが理解出来ているかどうかの重要な見極めにもなります。 

基本 
"今日は○○する気分ではない" 
という文字列は最後に0(ナル文字)がつきます。 

ナル文字とヌルとヌルポインタの違いはその意味にあり、
ナル文字(NUL)はゼロ終端系文字列(*1)に於ける文字の終了
nullは無効な値
null pointerは無効なポインタ
をそれぞれ意味します。

***補足
1)ゼロ終端系でない文字列にはPASCAL文字列等があり、PASCAL文字列は処理速度に優れた特性があるため、Excel内部等で用いられている。


**実際に使ってみよう
Sting型に慣れている人は面倒だと思うけど、ついてきて欲しい。

1 byte型配列を使おう!
#asciiart(blockquote){
#N88BASIC
Dim mes[123] As Byte'123バイト確保
lstrcpy(mes, "平井公彦")'mesに文字列をコピー
lstrcat(mes," 私は彼が好きです")'mesに連結
wsprintf(mes+lstrlen(mes), "%d",100)'100を文字列にして追加
Print MakeStr(mes)
}
なんということのないコードだが、配列にデータをコピーしているのであふれにように中尉。
おしりがNULなのでmes[8]=0などと直接値を代入しててもおk

2 ポインタ
#asciiart(blockquote){
#N88BASIC
Dim p As *Byte

Const A="平井公彦"
Const B="松嶋絵美"

p=A
Print MakeStr(p)
p=B
Print MakeStr(p)
}
エラーメッセージなどすでに文字列が確保されているようなときは、ポインタを使えばいい。
アドレスを渡すだけなので、バッファオーバーフローとかないし、速い。
しかし、ポインタの指した先がリテラルの場合は変更できないと思え。

復元してよろしいですか?