-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'는 어떤 값을 얻습니까? 이는 컴파일러가 불평하는 정확한 오류입니다. 거기에 할당을 가진'switch'에있는'default' 절 또는 선언에있는 초기화는 문제를 제거 할 것입니다. – Alejandro
경고가 아니라 오류 일 수 있습니까? – user463035818