如何在C中将字符串转换为long long?
我有
char* example = "123";
我想将示例转换为很长的时间,所以我想要像
这样的东西long long n = example;
我该怎么做?
答案 0 :(得分:11)
使用函数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。
(对于历史兴趣:{C}引入了long long int
和strtoll
。它们在C89 / 90中不可用。等效函数strtol
/ strtoul
/ {{但是,存在。)