我有一个字符串,假设
char *Wstr = "TEMP =20C ALT=12D"
char *temp_pos = NULL;
char *tpos = NULL;
char temp[10] = {'\0'};
我正在尝试获取值20并存储它
TEMP
和20C
之间的间距可能不一致,即:
TEMP=20C
或TEMP = 20C
或TEMP =20C
或TEMP= 20C
。目前我拨打strstr
致TEMP
,然后使用while循环与isdigit
结合使用:
if ((temp_pos = strstr(Wstr, "TEMP"))) {
tpos = temp_pos+4;
while(isspace(*tpos) || (*tpos == '='))
tpos++;
while ((isdigit(*tpos)) && (*tpos!='\0')) {
temp[i] = *tpos;
i++;
tpos++;
}
}
有没有办法可以立即得到数字,即在strstr
之后的情况下20,我想最小化代码中的循环次数,是否有更好的方法来做到这一点,即更好的方法来编写这段代码/逻辑?