C에서 문자열을 long long으로 변환하려면 어떻게해야합니까?문자열을 long long C로 변환 하시겠습니까?
내가
char* example = "123";
있어 내가 오래 오래로 예를 변환 그래서 나는이 작업을 수행 할 수있는 방법
long long n = example;
같은 것을 싶어 싶습니다?
C에서 문자열을 long long으로 변환하려면 어떻게해야합니까?문자열을 long long C로 변환 하시겠습니까?
내가
char* example = "123";
있어 내가 오래 오래로 예를 변환 그래서 나는이 작업을 수행 할 수있는 방법
long long n = example;
같은 것을 싶어 싶습니다?
사용 기능 strtoll
:이와 더욱 정교한 분석을 수행 할 수 있도록
#include <stdlib.h>
#include <errno.h>
char const * example = "123";
char * e;
errno = 0;
long long int n = strtoll(example, &e, 0);
if (*e != 0 || errno != 0) { /* error, don't use n! */ }
, e
는, 변환 된 순서 후에 다음 문자를 가리 킵니다. 그대로, 전체 시퀀스가 변환되었는지 확인합니다. errno
을 검사하여 오버플로가 발생했는지 확인할 수도 있습니다. 자세한 내용은 the manual을 참조하십시오.
(사적 경우 : long long int
및 strtoll
C99에서 도입 된 그들은 C89/90에서 사용할 수없는있어 동등한 기능/strtoul
/strtod
이 존재 strtol
을하지만...)
strtoll에 세 번째 인수 ("base")로 '0'()'는 입력 문자열 "0123"을 8 진수로 해석하므로, base = 10을 명시 적으로 사용하는 것을 선호 할 수 있습니다. –
팁 : 그것은해야한다'문자의 CONST *', 문자열 리터럴은 읽기 전용이므로. 나중에 두통을 줄여 줄 것이다. 적어도 코드를 복사/붙여 넣기하고 C를 모르는 사람들은 저장하지 않을 것이다. –