文字列処理

文字列については本家のWin32プログラミング講座のステップ15に解説があります。
文字列を処理するには配列やポインタの知識がどうしても必要です。
文字列を格納するにはByte型配列を利用します。
#console
#include<vcrt71.sbp>

Dim name[200] As Byte

strcpy(name , "私の名前はハニリイトです。")
strcat(name , "本当ですよ。")

printf(Ex"name=%s\n" , name)
Dim文でname配列を200個宣言します。半角文字200個、全角では100文字分です。
strcpy関数で文字列をコピーします。
strcat関数で文字列をつなげています。(name + "本当ですよ。"がnameに入る)
最後にprintfで表示しています。

上のやり方は、最初から最後まで200バイトのメモリを占有しています。途中で増やしたり減らしたりできません。
もし300バイトの文字列がコピーされた場合、強制終了となってしまいます。
事前に使われる量をしらべて、必要量だけ配列を確保したほうが経済的です。
ポインタを使うと動的確保ができます。
#console
#include<vcrt71.sbp>

Dim name As *Byte'=BytePtr Byte型ポインタ

Dim siz As Long'文字列サイズ

siz = strlen("私の名前はハニリイトです。")
name=malloc(siz+1)'メモリ確保
strcpy(name , "私の名前はハニリイトです。")
printf(Ex"name=%s\n" , name)
free(name)'メモリ開放
あまり良い例ではないですが、まあ我慢してください。
strlen関数は、文字列の長さを返します。これでどれだけメモリを確保すればよいかが分かります。
つぎにmalloc関数で実際にメモリを確保します。確保したメモリのアドレスが返ってくるのでポインタで受けます。
あとは配列の時と同じように使えます。
最後にfree関数で確保したメモリを開放します。