082 atof strtof strtod 문자열 실수 변환
개념 :
문자열의 실수들을 검색하여 실수로 변환하여 준다.
atof 의 경우 문자열에 실수만 들어 있어야하며 두번째를 탐색하지 않는다.
strtof 의 경우 문자열에서 찾은부분을 리턴하고 포인트로 그담을 가르켜서 연속적이고 구분가능한 실수들을 추출할수있다.
strtod의 경우는 strtof와 같으나 double이냐 float 이냐의 차이다. 상황에 맞게 쓰자.
소스코드 : main.c
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *pString_1 = "12.3 4.56 789.0";
char *pString_2 = "12.354";
float fValue_1 = 0.0f;
char* pPoint = pString_1;
float fBuffer_1[256] = { 0, };
float fBuffer_2[256] = { 0, };
int count = 0;
fValue_1 = atof(pString_2);
printf("%f \n", fValue_1);
for (count = 0; ;count++)
{
fBuffer_1[count] = strtof(pPoint, &pPoint);
if (fBuffer_1[count] == 0.0f)
{
break;
}
printf("%f \n", fBuffer_1[count]);
}
pPoint = pString_1;
for (count = 0; ;count++)
{
fBuffer_2[count] = strtof(pPoint, &pPoint);
if (fBuffer_2[count] == 0.0f)
{
break;
}
printf("%f\n", fBuffer_2[count]);
}
return 0;
}
결과
#c언어, #c언어입문, #프로그램입문, #atof, #strtof, #strtod, #문자열을실수로