先日は、ご迷惑をお掛けしまして、大変申し訳御座いませんでした。(_ _)
相変わらず質問ばかりのプログラマーで、すみません。
気が付いたら「熟練のプログラマー」に昇進してますが
「熟練の質問するだけのプログラマー」ですので、お許し下さい。w
添付させて頂いたファイルは、sprintf関数について、後々
自分が見て理解できる様に(すぐ忘れるから)、自分向けに作った例文(ソース)です。
ここでは、ポインタは使いません。
(環境:Windows NT VC++2008(SP1))
#include <stdio.h>
int main(){
char str_all[36+11];
char no[2+1] = "の"; // 2バイト
char ha[2+1] = "は"; // 2バイト
char ten[2+1] = "、"; // 2バイト
char maru[2+1] = "。"; // 2バイト
char str1[2+1] = "今"; // 2バイト
char str2[8+1] = "総理大臣"; // 8バイト
char str3[6+1] = "民主党"; // 6バイト
char str4[8+1] = "鳩山さん"; // 8バイト
char str5[4+1] = "です"; // 4バイト
---修正部位(↓straii → str_all)---
sprintf(str_all, "%s%s%s%s%s%s%s%s%s%s", str1, no, str2, ha, ten, str3, no, str4, str5, maru);
// 表示結果:今の総理大臣は、鳩山さんです。
printf("%s\n\n", str_all);
return 0;
}
添付したソースを、色々いじって遊んでいます。
結果、配列の値は上述の様になって、実行できました。
(環境:Windows NT VC++2008(SP1))
質問1:各配列の要素数(大きさ?)で、無駄にメモリ(バイト数)を使ってる箇所はありますか?
質問2:各配列の要素数(大きさ?)で、メモリ(バイト数)が足りない箇所はありますか?
質問3:各配列の[/url]内の +1 ([36+11]を除く)は、ヌル文字「\0」または「NULL」が入るのでしょうか?
質問4:char str_all[36+11]; の +11 は、char型を宣言で10個用意したので +1 で +11 にしてみました。
+10 でも大丈夫でしょうか?
どうも頭がごちゃごちゃになっていて、配列の要素数の整理が付かなくなってしまいました。
sprintf関数の質問ではなく、配列の質問です。
これって、ノイローゼーなのですかね?^^;
質問5:質問4で、「char型を宣言で10個用意したので +1 で +11 にしてみました。」
と質問してますが、質問の意味が解りますでしょうか?
