「文字列処理」の編集履歴(バックアップ)一覧はこちら

文字列処理 - (2010/01/17 (日) 13:56:01) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

文字列処理は重要です。ポインタが理解出来ているかどうかの重要な見極めにもなります。 基本 "今日は○○する気分ではない" という文字列は最後に0(ナル文字)がつきます。 ナル文字とヌルとヌルポインタの違いはその意味にあり、 null文字はゼロ終端系文字列(*1)に於ける文字の終了 nullは無効な値 null pointerは無効なポインタ をそれぞれ意味します。 ***補足 1)ゼロ終端系でない文字列にはPASCAL文字列等があり、PASCAL文字列は処理速度に優れた特性があるため、Excel内部等で用いられている。
文字列処理は重要です。ポインタが理解出来ているかどうかの重要な見極めにもなります。 基本 "今日は○○する気分ではない" という文字列は最後に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) } エラーメッセージなどすでに文字列が確保されているようなときは、ポインタを使えばいい。 アドレスを渡すだけなので、バッファオーバーフローとかないし、速い。 しかし、ポインタの指した先がリテラルの場合は変更できないと思え。

表示オプション

横に並べて表示:
変化行の前後のみ表示: