-1
私はC++を使用しており、std::string
は使いたくありません。私は、条件付きの値に基づいてCスタイルの文字列の値を設定しようとしています。これは可能ですか?ここで条件付きでCスタイルの文字列をC++で設定するには?
が最小作業例です:
#include <iostream>
void print_thing(int a)
{
char* message;
switch (a)
{
case 1:
message = "case 1";
break;
default:
message = "case 2";
break;
}
std::cout << message << std::endl;
}
int main()
{
int a{ 5 };
print_thing(a);
}
このプログラムはエラーではありませんが、文字列リテラルに非const
char*
を設定するために、悪いフォームと思われます。これを行うより良い方法はありますか?
ポインタを初期化するとどうなりますか?たとえば、 'char * message = nullptr;' –
'a'が1でも2でもない場合、' message'はどのような値になりますか?これは、コンパイラが不平を言っている正確なエラーです。 'default'節を' switch'に代入するか、宣言で初期化することで問題を取り除くことができます。 – Alejandro
エラーではなく警告である可能性がありますか? – user463035818