C的parseInt()或int等价物

时间:2013-12-22 16:36:40

标签: javascript python c

我正在学习C刚开始今天,我来自了解一点Python和一点点Javascript,我想知道如何在Javascript中获取字符串的int基础,你可以做这样:

parseInt("myString", 36);

那将返回1799765255212

在Python中就是这样:

int("myString", 36)

哪个也会返回1799765255212

是否有C等价物?如果没有,我该怎么做?

4 个答案:

答案 0 :(得分:2)

#inclucde <stdlib.h>

long long val = strtoll("myString", NULL, 36);

答案 1 :(得分:0)

您可以使用接受可选基础的strtoll将您的号码转换为base36,因为Python int已完成

long long myint1 = std::strtoll("myString", NULL ,36);

很少有事情需要注意,

Python整数不受C / C ++位数限制的限制。根据标准,int的大小最多为4个字节

std::stoi, std::stol, std::stollatoi不同,它接受一个可选的基础来接受任意基础的字符串。

因此,请考虑以上两点,std::strtoll最适合您的具体情况。

示例来源

#include <iostream>
#include <string>

int main()
{
    std::string str1 = "myString";
    long long myint1 = std::strtoll(str1.c_str(),0,36);
    std::cout << "std::strtoll(\"" << str1 << "\") is " << myint1 << '\n';
}

输出

std::strtoll("myString") is 1799765255212

注意 strtoll已添加到标准每个C99或C ++ 11中。截至目前,并非所有编译器都符合C ++ 11

答案 2 :(得分:0)

我会使用strtoll之类的:

#include <stdlib.h>

long long value;
value = strtoll("myString", NULL, 36);
printf("value is %lld.\n", value);

答案 3 :(得分:0)

除了atof()

之外,为了这个目的,请查看sscanf()strtod()