如果我有一个像这样的文本文件:
8f5
我可以轻松地使用strstr
解析值8
和5
出来。因此:
//while fgets.. etc (other variables and declarations before it)
char * ptr = strstr(str,"f");
if(ptr != NULL)
{
int a = atol(ptr-1); // value of 8
int b = atol(ptr+1); // value of 5
}
但是,如果值长两个小数点怎么办?我可以add +2 and -2
给每个atol打电话。但是我无法预测值何时小于或等于10
12f6
或15f15
因为每次值都是随机的(即一个小数或两个小数)。有没有一种方法可以检查字符串之间的值的长度,然后使用atol()
?
如果我正确阅读了问题,请使用atol(str)
和atol(ptr+1)
。这将使您获得两个用f分隔的数字,而不管它们有多长。
*ptr = '\0'
如果您不想依靠垃圾字符阻止atol解析这一事实,请首先设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句