int 형 숫자를 문자열로 변환하기
int 형을 char *로 변환하기 - sprintf 사용 방식
C/C++에는 sprintf라는 함수가 있다.
printf와의 차이점은 printf의 경우 기본 출력인 모니터로 문자열이 출력된다는 것이고, sprintf는 지정해준 변수로 출력이 되어 입력 문자열이 저장된다는 차이점이 있다.
함수의 원형은 다음과 같다.
#include <stdio.h>
int sprintf (char *buffer, const char *format, ...)
int snprintf(char *buffer, int buf_size, const char *format, ...)
// 헤더 파일: stdio.h
// 파라미터: 버퍼 변수, 입력 포멧, 가변 파라미터
// 리턴값: 문자열의 길이
// snprintf: sprintf의 버퍼 사이즈 초과 오류를 해결하기 위해 나온 함수
즉 int형을 char *로 바꾸기 위해서는 아래와 같은 코드를 사용할 수 있다.
int num = 500;
char buffer[10];
sprintf(buffer,"%d",num);
int형을 char*로 변환하기 - itoa 사용 방식
itoa 함수는 atoi함수와 반대로 Interger TO Alphabet을 의미한다.
함수의 원형은 다음과 같다.
#include <stdlib.h>
char *itoa(int value, char *str, int radix)
// 헤더 파일: stdlib.h
// 파라미터: 바꾸고자하는 int 값, 저장될 문자열, 진수결정(2진수,10진수)
// 리턴값: 문자열 str의 포인터
itoa를 활용하여 int형을 char*로 변환하기 위해서는 아래와 같은 코드를 사용할 수 있다.
char buffer[10] = {0,};
int num = 100;
itoa(num,buffer,10);
다만 itoa함수는 비표준함수이기 때문에,C99/C11에서 정의되어있지 않고 MS 컴파일러를 통해서만 사용이 가능하다.
그러다보니, 리눅스나 맥 유저에게는 동작하지 않을 수 있기 때문에 itoa 방식보다는 sprintf를 사용하는것이 더 적절하다고 볼 수 있다.
int형을 string으로 변환하기 - to_string 사용
char형 배열이 아니더라도 C++에서 제공하는 string으로도 변환이 가능하다.
to_string 함수의 원형은 다음과 같다.
#include <string>
string to_string(int num)
string to_string(long num)
string to_string(long long num)
...
// 헤더 파일: string
// 파라미터: 바꾸고자하는 숫자
// 리턴값: 변경된 string
to_string으로 int형을 string으로 변환하기 위해서는 아래와 같이 코드를 작성하면 된다.
int num = 100;
string str;
str = to_string(num);
만약 이렇게 얻은 string을 char * 로 변환하려고 할 경우 c_str()를 사용하면 된다.
string str = "Hello";
char* arr = str.c_str();
'Development > C & C++' 카테고리의 다른 글
[C++ / STL] String 대문자, 소문자화 하는법 (0) | 2021.07.17 |
---|---|
[C++ / STL] String 공백 제거 하는 방법 (0) | 2021.07.17 |
[C++ / STL] String 공백 포함 입력 받는 방법 (0) | 2021.07.17 |
[C++/MFC] LNK2019 _ main 외부 기호를 확인하지 못했습니다. 해결법 (0) | 2020.09.15 |
[C/C++] char 형 int로 변환하기 (0) | 2020.01.20 |