在C中使用条件运算符拆分字符串表达式

时间:2018-02-05 05:38:43

标签: c string split

我正在输入字符串数组,每个数组都有一个表达式。我想在考虑所有条件运算符的情况下拆分表达式。 我的表达可能像str [0],str [1],str [2]

   FIC >= 1 && PIC == 1
   FCV<=0.2 && FCC>=12

现在我必须将第一个字符串拆分为'FIC&gt; = 1''PIC == 1'

我可以使用strtok (str[0],"&&");

来完成此操作

我再次将'FIC&gt; = 1'分为字符串'FIC'和'&gt; ='和'1'。 然后我在我的应用程序中有单独的函数来获取'FIC'的值,我将检查这个条件是否为真。如果是,那么我必须采取一些行动。

但是这个表达方式不一样,有些表达式有更多&amp;&amp;运算符和更多条件运算符。我怎么能分开这个

1 个答案:

答案 0 :(得分:1)

如果您知道分隔符字符串,则可以使用库函数strstr

    const char * str1 = "FIC >= 1 && PIC == 1";
    const char * sep = "&&";
    char *p = NULL, *q = NULL, *r = NULL;
    int len = 0;

    p = strstr(str1, sep);
    len = p - str1;
    q = calloc(len + 1, sizeof(char));
    strncpy(q, str1, len);
    len = strlen(str1) - len - strlen(sep);
    r = calloc(len + 1, sizeof(char));
    p += strlen(sep);
    strcpy(r, p);

现在qr指向包含输入字符串两部分的缓冲区。请注意,如果在str1中找不到sep,strstr将返回NULL,因此如果您不能保证sep在字符串中,请在继续之前检查NULL。