是否有strtol()
或sscanf()
等效词,您可以指定号码。转换的字符?
我有一个用例,我需要将一个字符数组的子部分转换为整数,所以我没有终止空字符存在
换句话说,我希望与strncmp()
strcmp()
相当于
即。 strntol()
或snscanf()
,但它们似乎不存在
我想我只需要复制并添加'\0'
并使用strtol()
或sscanf()
,但只是想检查我没有错过现有的功能为此目的
问题确实存在吗?我只是在寻找错误的东西?
答案 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
开始
以上代码打印456
(demo)。