- ベストアンサー
printfの出力内の文字をdefineしたい
defineで定義した内容をprintfしたいのですが、どうすればいいですか? 次のようなコードを書きましたがコンパイルが通りませんでした。 #define ALP2 B int main(){ printf("A"ALP2"C"); return 0; } 上記のコードで「ABC」という出力を得たいです。 できれば変数に代入してから出力というのは避けたいので、それ以外の方法がありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#define ALP2 "B" int main(){ printf("A%sC", ALP2); return 0; } じゃだめなのかな?
その他の回答 (2)
- jacta
- ベストアンサー率26% (845/3158)
回答No.3
次のようにします。 #define STR(x) STR2(x) #define STR2(x) #x #define ALP2 B int main() { printf("A" STR(ALP2) "C"); return 0; }
- Yune-Kichi
- ベストアンサー率74% (465/626)
回答No.2
> printf("A"ALP2"C"); printf("A" #ALP2 "C"); ということですか? #については,「文字列化演算子」あたりをキーに探すとよいでしょう (#では流石に検索できないと思うので)。
お礼
%sはchar型の文字列だったら 変数じゃなくても構わないことをすっかり忘れていました。 ありがとうございます。助かりました。