프로그래밍 언어/C, C++

[C언어] 문자열을 숫자로, 숫자를 문자열로

sujo 2021. 1. 27. 16:37

문자열을 숫자로, 숫자를 문자열로

: 아래 사용할 함수들에 대해 #include <stdlib.h> 를 사용한다.

 

문자열 → 숫자

atoi 정수형

: int atoi(char *string);

//string : 정수로 이뤄진 문자열

 

atof 실수형

: double atof(char *string);

//string : 실수로 이뤄진 문자열

 

예제(C언어)

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    int i = atoi("1234");
    printf(" atoi(\"1234\") = %d\n", i);
 
    double d = atof("1.234");
    printf("\n atof(\"1.234\") = %lf\n", d);
 
    return 0;
}
cs

 

[ 출력 결과 ]

 

 

숫자 → 문자열

itoa 정수형 int

: char *itoa(int value, char *buffer, int radix)

//value : 문자열로 변경할 수

//buffer : 변경한 문자열을 저장할 버퍼

//radix : 진수(2진수, 8진수, 16진수)

 

ltoa 정수형 long

: char *ltoa(long value, char *buffer, int radix)

//value : 문자열로 변경할 수

//buffer : 변경한 문자열을 저장할 버퍼

//radix : 진수(2진수, 8진수, 16진수)

 

ultoa 정수형 unsigned long

: char *ultoa(unsigned long value, char *buffer, int radix)

//value : 문자열로 변경할 수

//buffer : 변경한 문자열을 저장할 버퍼

//radix : 진수(2진수, 8진수, 16진수)

 

예제(C언어)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main() {
    char buffer[100];
 
    //itoa, 10진수
    printf("<<itoa, 10진수>>\n");
    int value1 = 1234;
    itoa(value1, buffer, 10);
 
    printf("buffer = %s\n", buffer);
    for (int i = 0; i < strlen(buffer); i++)
        printf("buffer[%d] = %c\n", i, buffer[i]);
 
 
    //ltoa, 16진수
    printf("\n<<ltoa, 16진수>>\n");
    long value2 = 1234;
    ltoa(value2, buffer, 16);
 
    printf("buffer = %s\n", buffer);
 
 
    //ultoa, 2진수
    printf("\n<<ultoa, 2진수>>\n");
    unsigned long value3 = 1234;
    ultoa(value3, buffer, 2);
 
    printf("buffer = %s\n", buffer);
 
    return 0;
}
cs

 

[ 출력 결과 ]