logo

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 값입니다.