从C中的字符串获取文本的特定部分

从C中的字符串获取文本的特定部分,c,string,C,String,对于我正在开发的程序,我需要从在线xml文档中获取特定区域的信息。现在我已经将xml保存为字符串,然后使用press=xml.substr(1906,5)从中获取我需要的内容。这是我从中提取信息的一行:30.17问题是,如果中间的值大于指定的长度(本例中为5个字符),我无法获得所需的值。如何可靠地获取它?首先将字符串转换为xml结构,然后使用XPath选择器提取所需内容。这里有一个非常简单的例子: 您是否考虑过这样的事情: #include <stdio.h> #include &l

对于我正在开发的程序,我需要从在线xml文档中获取特定区域的信息。现在我已经将xml保存为字符串,然后使用
press=xml.substr(1906,5)从中获取我需要的内容。这是我从中提取信息的一行:
30.17
问题是,如果中间的值大于指定的长度(本例中为5个字符),我无法获得所需的值。如何可靠地获取它?

首先将字符串转换为xml结构,然后使用XPath选择器提取所需内容。这里有一个非常简单的例子:


您是否考虑过这样的事情:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main ()
{
    // sample string below:
    char* xmlText = "<pressure_in>30.17134</pressure_in>";
    int n = strlen(xmlText);
    for (int i = 0; i<n; i++) {
        if (isdigit(xmlText[i]) || xmlText[i] == '.') {
            // store result or just print:
            printf("%c",xmlText[i]);
        }
    }
    printf("\n")
    return 0;
}

如果您不需要一个完整的XML解析器就可以得到这一行,那么只需使用一个简单的正则表达式即可。谢谢,这帮我弄清楚了该怎么做。
30.17134