Programming Language/C, C++

[C++] int와 string 사이 형변환 방법

hanseongjun 2022. 9. 2. 15:40

참고한 블로그 : 

https://www.delftstack.com/ko/howto/cpp/how-to-convert-int-to-string-in-cpp/

 

C++에서 Int를 문자열로 변환하는 방법

이 기사에서는 C++에서 정수를 문자열로 변환하는 방법을 보여줍니다.

www.delftstack.com

https://godog.tistory.com/entry/C-string-to-int-int-to-string-%ED%98%95%EB%B3%80%ED%99%98-%ED%95%98%EA%B8%B0

 

C++ string to int, int to string 형변환 하기

C++ string to int, int to string 형변환 하기 , string 문자열에서 숫자만 선택해 형변환 int stoi (const string& str [, size_t* idx = 0, int base = 10]) : string to int - string을 int로 바꾸어주기 위해..

godog.tistory.com

https://velog.io/@dkssk2140/C-%EC%88%AB%EC%9E%90%ED%98%95%ED%83%9C%EC%9D%98-char%EB%A5%BC-int%EB%A1%9C-%ED%98%95%EB%B3%80%ED%99%98

 

[C++] 숫자형태의 char를 int로 형변환

https://stackoverflow.com/questions/31490145/what-does-si-0-mean\-'0' 해주기ex)

velog.io


1. int -> string으로 변환하는 방법

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int n;
	int i;
	cin >> n;
	string number = to_string(n);
	for (i = 0; i < number.length(); i++)
		cout << number[i];
	return 0;
}
  1. string 헤더 include
  2. to_string 메서드를 이용해 string 포인터에 전달 (to_string 함수는 string 객체를 반환)

* 단, 부동소수점 리터럴을 to_string 함수에 전달 시 값이 잘리는 문제 발생 가능

 

- 사용 예시 >

결과 >

앞의 0은 잘리고 나머지 1234만 출력되는 모습을 볼 수 있다.

 

 

2. string -> int로 변환 방법

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int n;
	int i;
	cin >> n;
	string number = to_string(n);
	n = stoi(number);
	cout << n;

	return 0;
}

마찬가지로, string 헤더를 include 해주고

stoi 함수를 사용해준다. (string to int를 줄인 것)

3. 그럼 char -> int는?

char형을 int로 변환해주면, 일단 c++에서는 문자열은 string형을 쓰기 때문에 char을 int로 바꾼다는 건 보통 한 글자 내에서 연산이 이루어진다는 것이다.

따라서 char형을 int형에 저장하면 그 문자의 아스키코드값 ('1' -> 49)이 나오게 되는데, 여기서 그냥 '1'을 빼고 1을 더해 주면 된다.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int n;
	int i;
	cin >> n;
	string number = to_string(n);
	n = number[0] - '1' + 1;
	cout << n;
	return 0;
}

 

LIST