从char数组中提取指定的数字

时间:2013-12-04 16:32:57

标签: c++ c scanf

尝试使用sscanf从下一个字符串中提取秒数: 现在是2013-12-04 18:01:20

sscanf(buf, "%*s %*s %*d%*s%*d%*s%*d %*d%*s%*d%*s%d", &i);

它失败了,任何想法如何为它制作正确的格式?或者任何提取它的想法更容易?我所需要的只是最后一秒。

3 个答案:

答案 0 :(得分:2)

sscanf("Now it's 2013-12-04 18:01:20", "%*s %*s %*s %*d:%*d:%d", &i)

答案 1 :(得分:2)

if (1 == sscanf("Now it's 2013-12-04 18:01:20", 
    "Now it's %*d-%*d-%*d %*d:%*d:%d", &i)) Success();

答案 2 :(得分:0)

您可以使用strrchr查找传递的char的最后一次出现。

    char * now =  "2013-12-04 18:01:20";
    char *ptr = strrchr( now, ':' );
    int i=0xFF; /* out of acceptable values ;) */
    if( ptr ) {
       i = atoi( ptr+1);
    }