int를 char로 변환하는 C++ 프로그램

이번 글에서는 C++에서 int를 char로 변환하는 방법을 배워보겠습니다. 이 변환에는 다음과 같은 5가지 방법이 있습니다.

    타입캐스팅을 사용합니다. static_cast를 사용합니다. sprintf()를 사용합니다. to_string() 및 c_str() 사용. 스트링스트림을 사용합니다.

먼저 이러한 각 방법에 대해 자세히 논의해 보겠습니다.

예:

입력: N = 65
산출:

입력: N = 97
산출:

1. 타입 캐스팅 사용

방법 1:

    선언 및 초기화: 시작하려면 변환할 값으로 정수를 선언하고 초기화합니다. Typecasting: 한 데이터 유형을 다른 데이터 유형으로 변환하는 기술입니다. 우리는 정수 N을 형변환하고 그 값을 char 변수 c 데이터 유형에 저장합니다. 문자 인쇄: 마지막으로 cout을 사용하여 문자를 인쇄합니다.

다음은 타입 캐스팅을 사용하여 int를 char로 변환하는 C++ 프로그램입니다.

C++




// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 97;> > cout < <> char> (N);> > return> 0;> }>

산출

a 

시간 복잡도는 O(1)이고 보조 공간은 O(1)입니다.

방법 2:

    선언 및 초기화: 시작하려면 변환할 값으로 정수를 선언하고 초기화합니다. Typecasting: 다른 변수를 문자 c로 선언하고 N 값을 C에 할당합니다. 문자 인쇄: 마지막으로 cout을 사용하여 문자를 인쇄합니다.

다음은 타입 캐스팅을 사용하여 int를 char로 변환하는 C++ 프로그램입니다.

C++




// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > char> c = N;> > cout < < c;> > return> 0;> }>

산출

A 

2. static_cast 사용

static_cast 함수를 사용하여 정수를 문자로 변환할 수 있습니다. 다음은 static_cast를 사용하여 int를 char로 변환하는 C++ 프로그램입니다.

C++




// C++ program to convert> // int to char using static_cast> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > > char> c => static_cast> <> char> >(엔);> > cout < < c;> > return> 0;> }>

산출

A 

3. sprintf() 사용

char 버퍼로 변환될 단일 int 변수를 위한 공간을 할당하십시오. 다음 예에서는 정수 데이터의 최대 길이 Max_Digits를 정의한다는 점에 주목할 가치가 있습니다. sprintf 함수는 0바이트로 끝나는 char 문자열을 대상으로 보내기 때문에 char 버퍼 길이를 얻기 위해 sizeof(char)를 추가합니다. 결과적으로, 이 버퍼를 위해 충분한 공간이 확보되어 있는지 확인해야 합니다.

다음은 sprintf()를 사용하여 int를 char로 변환하는 C++ 프로그램입니다.

C++




// C++ program to convert> // int to char using sprintf()> #include> using> namespace> std;> #define Max_Digits 10> // Driver code> int> main()> {> > int> N = 1234;> > char> n_char[Max_Digits +> > sizeof> (> char> )];> > std::> sprintf> (n_char,> > '%d'> , N);> > std::> printf> (> 'n_char: %s '> ,> > n_char);> > return> 0;> }>

산출

n_char: 1234 

4. to_string() 및 c_str() 사용

to string() 함수는 단일 정수 변수 또는 기타 데이터 유형을 문자열로 변환합니다. c_str() 메서드는 문자열을 문자 배열로 변환하고 null 문자로 끝납니다.

다음은 to_string() 및 c_str()을 사용하여 int를 char로 변환하는 C++ 프로그램입니다.

C++




// C++ program to convert> // int to char using sto_string()> // and c_str()> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 1234;> > string t = to_string(N);> > char> const> *n_char = t.c_str();> > printf> (> 'n_char: %s '> ,> > n_char);> > return> 0;> }>

산출

n_char: 1234 

5. 스트링스트림 사용

stringstream은 문자열 개체를 스트림에 연결하여 마치 스트림(cin과 같은)인 것처럼 읽을 수 있도록 합니다. Stringstream에는 sstream 헤더 파일이 포함되어야 합니다. stringstream 클래스는 입력을 처리할 때 유용합니다.

다음은 stringstream을 사용하여 int를 char로 변환하는 C++ 프로그램입니다.

C++




// C++ program to convert> // int to char using> // stringstream> #include> using> namespace> std;> #include> // Driver code> int> main()> {> > int> N = 1234;> > std::stringstream t;> > t < < N;> > char> const> *n_char => > t.str().c_str();> > printf> (> 'n_char: %s '> ,> > n_char);;> > return> 0;> }>

산출

n_char: 1234 

방법: 0을 추가하여 int 값을 char로 변환

C++




// C++ program to convert> // int to char using typecasting by adding zero> #include> using> namespace> std;> //Driver code> int> main()> {> > int> number = 65;> > char> charvalue = (> char> (number)+0);> > cout < < charvalue;> > return> 0;> }>

산출

A 

시간 복잡도: 오(1).
보조 공간: 오(1).

접근법: ASCII 값 오프셋 접근법

단계:

  1. 사용자로부터 정수 입력을 받습니다.
  2. 입력값의 범위를 확인하여 입력값이 ASCII 테이블의 유효한 문자와 일치하는지 확인합니다.
  3. 입력 값이 유효한 문자에 해당하는 경우 해당 오프셋 값 '0' 또는 'A'(입력에 따라 다름)를 정수 값에 추가하여 해당 문자 값을 얻습니다.
  4. 해당 문자를 출력합니다.

C++




#include> using> namespace> std;> int> main() {> > int> num = 65;> > cout < <> 'Enter an integer: '> < < num < < endl;> > > char> ch;> > if> (num>= 65 && 숫자 <= 90) {> > ch = num;> > }> else> if> (num>= 97 && 숫자 <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > > cout < <> 'The corresponding character is: '> < < ch < < endl;> > num = 97;> > cout < <> 'Enter an integer: '> < < num < < endl;> > if> (num>= 65 && 숫자 <= 90) {> > ch = num;> > }> else> if> (num>= 97 && 숫자 <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > cout < <> 'The corresponding character is: '> < < ch < < endl;> > return> 0;> }>

산출

Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a 

시간 복잡도: O(1), 관련된 루프가 없기 때문입니다.
보조 공간: O(1), 결과를 저장하기 위해 단일 문자 변수만 사용하기 때문입니다.

접근 방식 이름: 산술 변환

단계:

  1. 입력 int 값의 자릿수를 계산합니다.
  2. 오른쪽에서 왼쪽으로 숫자를 반복하여 각 숫자를 추출하고 ASCII 값 '0'을 추가하여 문자로 변환합니다.
  3. 제공된 출력 버퍼에 결과 char 배열을 저장합니다.

C++




#include> #include> using> namespace> std;> void> int_to_char(> int> num,> char> *result) {> > int> temp = num;> > int> len = 0;> > while> (temp>0) {> > len++;> > temp /= 10;> > }> > for> (> int> i = len - 1; i>= 0; 나--) {> > result[i] = num % 10 +> '0'> ;> > num /= 10;> > }> > result[len] => ' '> ;> }> int> main() {> > int> num = 12345;> > char> result[100];> > int_to_char(num, result);> > cout < < result < < endl;> > return> 0;> }>

산출

12345 

시간 복잡도 : O(log10 n), 여기서 n은 입력 int 값입니다.
공간 복잡도: O(log10 n), 여기서 n은 출력 char 배열을 저장해야 하기 때문에 입력 int 값입니다.