C++ 문자열 결합, 문자열을 숫자로 변환, 숫자를 문자열로 변환

C++ 문자열 결합, 문자열을 숫자로 변환, 숫자를 문자열로 변환

너무 오랜만에 C++을 해보니 문자열 결합부터가 헷갈려서 간단히 정리해둔다.

먼저 문자열은 아래와 같이 선언한다.

std::string str1 = “Hello World.”;

C++에서 문자열 출력은 아래와 같이 한다.

// 아래 코드는 cout << “Hello World.” << endl; 와 같음

std::string str1 = “Hello World.”;

cout << str1.c_str() << endl;

보다시피 std::string 객체에 멤버함수로 c_str() 이 있다.

c_str() 함수는 문자열을 char* 형태로 리턴해준다.

C++을 잘 모르는 나이지만, 이 함수가 상당히 고마운 존재라는 것은 알 수 있다.

참고로 cocos2d-x 라이브러리에는 log 라는 함수가 있다.

log 는 콘솔에 문자열을 출력해준다.

이 때, 문자열은 char* 로 넘겨야 한다. 역시 c_str() 함수를 사용해야 한다는 얘기다.

숫자 출력

int num = 10;
log(“num : %d”, num);

숫자 더하기 후 출력

int num1 = 10;
int num2 = 20;
int num3 = num1 + num2;
log(“num3 : %d”, num3);

문자열 출력 1 (char* 사용)

char* str = “10”;
log(“str : %s”, str);

문자열 출력 2 (std::string 사용)

std::string str1 = “10”;
log(“str1 : %s”, str1.c_str());

문자열 결합 후 출력

std::string str2 = “10”;
std::string str3 = “20”;
std::string str4 = str2 + str3;
log(“str4 : %s”, str4.c_str());

숫자를 문자열로 변환

int num10 = 10;
std::string str10 = std::to_string(num10);

log(“str10 : %s”, str10.c_str());

문자열을 숫자로 변환 1 (char* to int)

char* str20 = “10”;
int num20 = std::atoi(str20);
log(“num20 : %d”, num20);

문자열을 숫자로 변환 2 (std::string to int)

std::string str21 = “10”;
int num21 = std::stoi(str21);
log(“num21 : %d”, num21);