c언어 문자열을 실수로 변환 strtof함수

조회수 59회

c언어 공부중인 초보입니다.

책에선

#include <stdio.h>
#include <stdlib.h>    // strtof 함수가 선언된 헤더 파일

int main()
{
    char *s1 = "35.283672 3.e5 9.281772 7.e-5";    // "35.283672 3.e5f 9.2817721 7.e-5f"는 문자열
    float num1;
    float num2;
    float num3;
    float num4;
    char *end;    // 이전 숫자의 끝 부분을 저장하기 위한 포인터

    num1 = strtof(s1, &end);     // 문자열을 실수로 변환
    num2 = strtof(end, &end);    // 문자열을 실수로 변환
    num3 = strtof(end, &end);    // 문자열을 실수로 변환
    num4 = strtof(end, NULL);    // 문자열을 실수로 변환

    printf("%f\n", num1);    // 35.283672
    printf("%e\n", num2);    // 3.000000e+05
    printf("%f\n", num3);    // 9.281772
    printf("%e\n", num4);    // 7.000000e-05

    return 0;
}

이렇게 예제가 되있는데 그러면 처음 "35.283672 3.e5f 9.2817721 7.e-5f" 문자열에서 "35.283672"num1에 실수로 변환한 값을 주고 num2에 들어가는 문자열은 " 3.e5 9.281772 7.e-5"인데 이러면 처음부터 공백이라는 특수문자가 있어서 0으로 변환되는 거 아닌가요? 아니면 공백을 무시하고 그 다음부터 인식하는 건가요?

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.