将char数组的子部分转换为int

时间:2017-09-25 15:29:14

标签: c

是否有strtol()sscanf()等效词,您可以指定号码。转换的字符?

我有一个用例,我需要将一个字符数组的子部分转换为整数,所以我没有终止空字符存在

换句话说,我希望与strncmp()

相关的strcmp()相当于

即。 strntol()snscanf(),但它们似乎不存在

我想我只需要复制并添加'\0'并使用strtol()sscanf(),但只是想检查我没有错过现有的功能为此目的

问题确实存在吗?我只是在寻找错误的东西?

1 个答案:

答案 0 :(得分:1)

strtol没有等效内容,但您可以使用格式说明符来限制sscanf所考虑的字符数:

char *str = "1234567890";
int n;
sscanf(&str[3], "%3d", &n);
printf("%d\n", n);

%3d说明符指示sscanf仅从str取三位数,而&str[3]告诉sscanf从索引3开始

以上代码打印456demo)。