C++

c++ 형 변환 정리

transfer_kk 2023. 3. 20. 12:44

아스키 코드 

string값을 --값으로 변환하는 함수 => stoi, stod

stoi => string to int

stod => string to double

 

string을 int 값으로 변환 

string a = "1234";
int b = stoi(a); //b=1234

string을 double 값으로 변환

string a = "12.34";
double b = stod(a); // b=12.34

 

int, double값을 string으로 변환 (#include <string>)

int num = 1234;
string s = to_string(num);

to_string은

string to_string (int num);

string to_string (long num);

string to_string (long long num);

string to_string (unsigned num);

string to_string (unsigned long num);

string to_string (unsigned long long num);

string to_string (float num);

string to_string (double num);

string to_string (long double num);

으로도 사용 가능하다.

 

char 값을 int로 변환

// char 숫자 값을 int로 변환
char charValue = '5';
int a = charValue - '0'; // a = 5

아스키 코드의 순서가 0부터 9씩 차례대로 1씩 늘어나므로 위와 같이 작성하면 해당 수의 값을 구할 수 있다.

/* 문자 -> 아스키코드 */
char ch = 'A';
int a =  atoi(ch); // a = 65

이를 이용해서 알파벳을 그에 해당하는 숫자로도 변환할 수 있다. char 숫자 값을 int로 변환 한 것처럼 하면 된다.

char ch = 'C';
int a = ch-'A';  // 2

 

 

이외에도 atoi, atof 함수로도 형변환이 가능하다.

atoi => char(Ascii) to int

atof => char(Ascii) to double

 

char 값을 int 값으로 변환

char str[] = "2019"; 
int a = atoi(str); // a = 2019

 

char 값을 double 값으로 변환

char str[] = "20.19"; 
double a = atod(str); // a = 20.19

 

 

int 값을 char로 변환

/* 대문자는 정수 65 ~ 90까지 총 26개 */
int num = 90;
cout << (char)num; //  Z

int num = 65;
cout << (char)num; //  A

/* 소문자는 정수 97 ~ 122까지 총 26개 */
int num = 122;
cout << (char)num; //  z

int num = 97;
cout << (char)num; //  a