728x90

숫자처럼 생긴 문자열을 숫자로 바꿔야 할 때가 있다. 아니면 숫자를 문자열로 바꿔야 할 때도 있을 수 있다.

그럴 때 쓰는 것이 stoi, stof, stol, stod, stold, stoll 함수이다.

이 함수들은 string 클래스에 정의되어 있기 때문에 이 함수들을 사용하려면 <string> 헤더파일을 포함해야 한다.

+stoi(s: string): int 문자열을 int로 바꾼다
+stol(s: string): long 문자열을 long으로 바꾼다.
+stof(s: string): float 문자열을 float로 바꾼다.
+stod(s: string): double 문자열을 double로 바꾼다.
+stold(s: string): long double 문자열을 long double로 바꾼다.
+stoll(s: string): long long 문자열을 long long으로 바꾼다.
#include <iostream>
#include <string>
using namespace std;


int main() {
	string s = "100";
	int a = stoi(s); //문자열 s를 정수형으로 바꿈
	cout << a + 45 << endl;
	return 0;
}

문자열일 때에는 정수와 더하기가 불가능했는데 int형으로 바꾸니 더하기가 멀쩡하게 되는 것을 볼 수 있다.

 

그렇다면 char형을 정수로 바꾸고 싶다면?

char형은 정수이기 때문에 0의 아스키코드인 48을 빼주면 된다. 0의 아스키코드를 기억하기 힘들다면 '0'을 빼주면 된다.

#include <iostream>
using namespace std;


int main() {
	char c = '9';
	int a = c - '0';
	cout << a + 10 << endl;
	return 0;
}

728x90

+ Recent posts