728x90
프로그래밍을 하다보면 문자열을 정수/실수로 바꾸거나 정수/실수를 문자열로 바꿔야하는 경우가 존재한다.
atoi, atof 함수사용, sscanf, sprintf 함수를 사용하는 방법이 있다.
sscanf, sprintf사용
1)sscanf() : 문자열로부터 읽어서 지정된 형식에 따라 변수에 저장한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>
int main(void)
{
char s1[] = "100 200 300";
char s2[20];
int value;
sscanf(s1, "%d", &value); //s1에서 읽어서 %d형식으로 value에 저장
printf("%d", value); //value를 출력
return 0;
}
|
cs |
설명) 문자열 s1을 선언과 동시에 초기화 해준다. sscanf()를 이용해서 s1에서 문자열을 읽어서 변수value에 저장하고 출력을 해본다. 문자열 100과 정수100은 엄연히 다르다! 우리가 처음 scanf를 배울땐 저장소에 우리의 키보드입력을 받는 것으로 생각을 했다. sscanf에서는 문자열 s1에서 입력을 받는것으로 생각을 하면 편하다.
2)sprintf() : 변수에 저장된 값을 지정된 형식에 따라 문자배열에 저장한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <stdio.h>
int main(void) {
char s1[] = "100 200 300";
char s2[20];
int value;
sscanf(s1, "%d", &value); //s1에서 읽어서 value에 정수로 저장
printf("%d\n", value); //value출력
sprintf(s2, "%d", value); //정수 value를 읽어서 문자열 s2에 저장
printf("%s\n", s2); //문자열 s2출력
return 0;
}
|
cs |
설명) sscanf()를 이용해 s1의 문자열을 읽어서 정수형태로 value에 저장했다. 그리고 저장된 value를 sprintf()를 이용해서 s2문자열에 저장했다. 그리고 문자열 s2를 출력했다.
atoi, atof함수사용
1) atoi() : 문자열을 정수로 바꾼다! (array to int 이렇게 알면 이해가 쉽습니다.)
2) atof() : 문자열을 실수로 바꾼다! (array to float)
간단한 예제를 살펴봅시다.(너무 쉬움)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char s1[] = "100 200 300";
char s2[] = "4.3";
int i;
double d;
i = atoi(s1);
d = atof(s2);
printf("%d\n", i);
printf("%f\n", d);
printf("%f\n", i + d);
return 0;
}
|
cs |
설명) atoi함수로 s1문자열을 정수로 바꾸고 i에 저장한다. atof함수로 s2문자열을 실수로 바꾸고 d로 저장한다. 그리고 출력해본다.

728x90
'C프로그래밍 > 개인 공부' 카테고리의 다른 글
C언어 - 구조체안에 문자배열? or 문자형을 가르키는 포인터? (0) | 2022.12.11 |
---|---|
C언어 - 구조체와 포인터 (0) | 2022.12.10 |
C언어 - 포인터의 기초 (0) | 2022.11.20 |
C언어 - 스트림과 파일 입출력 기초(쓰기와 삭제) (0) | 2022.11.02 |
C언어 - 10진수를 2진수로 바꾸기(재귀함수) (1) | 2022.10.13 |