带有out循环的字符串中第一次出现任何数字/数字

时间:2017-07-27 11:56:33

标签: c string loops

我有一个字符串,假设

char *Wstr = "TEMP =20C ALT=12D"
char *temp_pos = NULL;
char *tpos = NULL;
char temp[10] = {'\0'};

我正在尝试获取值20并存储它 TEMP20C之间的间距可能不一致,即:
TEMP=20CTEMP = 20CTEMP =20CTEMP= 20C。目前我拨打strstrTEMP,然后使用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,我想最小化代码中的循环次数,是否有更好的方法来做到这一点,即更好的方法来编写这段代码/逻辑?

0 个答案:

没有答案