C从两个单词之间的字符串中提取单词

C从两个单词之间的字符串中提取单词,c,extract,delimiter,C,Extract,Delimiter,我正在写一个C程序,其中一个问题是在两个单词之间提取一个单词,如下所示 ac_auto_lvalue[] = "ONLY / GROUP: OTHERS EXAMPLE /-----------------------------"; 我需要提取“Group:”和“/”之间的单词,这两个单词(Group:”&“/)将始终存在,但中间的单词可以更改,在某些情况下可能没有任何内容…(在上面的示例中,输出将是“OTHERS example” 有人能帮我找到上面的C代码段吗?使用strst

我正在写一个C程序,其中一个问题是在两个单词之间提取一个单词,如下所示

ac_auto_lvalue[] =
    "ONLY / GROUP:  OTHERS EXAMPLE  /-----------------------------";
我需要提取“Group:”和“/”之间的单词,这两个单词(Group:”&“/)将始终存在,但中间的单词可以更改,在某些情况下可能没有任何内容…(在上面的示例中,输出将是“OTHERS example”


有人能帮我找到上面的C代码段吗?

使用strstr for Group,将指针增加到Group(6)的长度。

看看这个函数。它可以让你在另一个字符串中找到一个指向某个特定字符串第一次出现的指针(比如,
“Group:
)(到字符串的开头和结尾)您可以使用
malloc
分配足够的内存(不要忘记终止零
'\0'
),使用
memcpy
复制字符,最后零终止字符串

int main() {
    char ac_auto_lvalue[] = "ONLY / GROUP: OTHERS EXAMPLE /-----------------------------";
    // Adding 7 to compensate for the length of "GROUP: "
    const char *p1 = strstr(ac_auto_lvalue, "GROUP: ")+7;
    const char *p2 = strstr(p1, " /");
    size_t len = p2-p1;
    char *res = (char*)malloc(sizeof(char)*(len+1));
    strncpy(res, p1, len);
    res[len] = '\0';
    printf("'%s'\n", res);
    return 0;
}

你能展示一下目前为止你有哪些代码吗?
strstr()
会有用的。不,我没有任何代码,我很久没有用C写过任何代码了,只是为了尽快解决这个问题……尽管我会尝试写一些东西并测试……对字符/做同样的事情。让我们说一下指向组末尾的指针的地址(即“p”)由char*a保存,“/”的地址由另一个指针char*b提供帮助,然后可以使用memcpy在这两个指针之间进行复制。