请教sscanf的参数格式可以可以如下

请问sscanf的参数格式可以可以如下
if (p && 1==sscanf(p,"op:%1023[^,]",MDL)
如上面这个sscanf的正则匹配格式,假设上面这个语句是在一个函数里面的,现在我想把那个前置符op:和[^,]里面的逗号作为一个字符指针来传入行么?就是不想在这里写死,想通过传入的参数来更多的匹配不同的字段的,但是表面上看来是不行的
比如如下面这样传入参数,然后代进正则表达式中
void split(char *str,char* symbol1,char* symbol2,char* filed1,char* filed2,char* filed3,char* filed4)

------解决思路----------------------
可以,sscanf(p,"op:%1023[^,]",MDL)
红色的部位你可以使用一个符合要求的字串变量,字串内容要符合要求
------解决思路----------------------
作为一个C程序员,对
 scanf,sscanf,fscanf
 printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
请教sscanf的参数格式可以可以如下
//if (p && 1==sscanf(p,"op:%1023[^,]",MDL)
//如上面这个sscanf的正则匹配格式,假设上面这个语句是在一个函数里面的,
//现在我想把那个前置符op:和[^,]里面的逗号作为一个字符指针来传入行么?
#include <stdio.h>
char *split(char *src,char *symbol,char *gap) {
    static char res[1024];
    char format[1024];
    res[0]=0;

    sprintf(format,"%s%%1023[^%s]",symbol,gap);
    sscanf(src,format,res);
    return res;
}
int main() {
    printf("[%s]\n",split("op:abc def,123 456","op:",","));
    printf("[%s]\n",split("OP:abc def;123 456","OP:",";"));
    return 0;
}
//[abc def]
//[abc def]
//