Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用strpbrk分隔字符串,并使用分隔符“quot&燃气轮机&燃气轮机&引用;?_C_String - Fatal编程技术网

C 使用strpbrk分隔字符串,并使用分隔符“quot&燃气轮机&燃气轮机&引用;?

C 使用strpbrk分隔字符串,并使用分隔符“quot&燃气轮机&燃气轮机&引用;?,c,string,C,String,我编写了一个程序,将包含以下字符的任何字符串作为输入: & , > , < , SPACE (e.g " ") &,>,>”添加到此组。我该怎么做 如果我只写:char分隔符[]=“&>>” 你知道怎么解决这个问题吗 谢谢strpbrk使用chars作为分隔符,而“>”不是char,因此不能仅将其用作分隔符。因为您已经有了'>'作为分隔符,所以当您看到一行中有两个字符时,可以将其作为特例。strpbrk使用chars作为分隔符,“>”不是字符,因此您不能仅将其用作分隔符。因

我编写了一个程序,将包含以下字符的任何字符串作为输入:

& , > , < , SPACE (e.g " ")
&,>,<,空格(例如“”)
分隔符是这样写的:
char分隔符[]=“&”
,我将它们与
strpbrk
命令一起使用

我需要将分隔符
“>>”
添加到此组。我该怎么做

如果我只写:
char分隔符[]=“&>>”>

你知道怎么解决这个问题吗


谢谢

strpbrk
使用
char
s作为分隔符,而
“>”
不是char,因此不能仅将其用作分隔符。因为您已经有了
'>'
作为分隔符,所以当您看到一行中有两个字符时,可以将其作为特例。

strpbrk
使用
char
s作为分隔符,
“>”
不是字符,因此您不能仅将其用作分隔符。因为您已经有了
'>'
作为分隔符,所以当您看到一行中有两个分隔符时,可以将其设为特例。

\include
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *strpbrkEx(const char *str, char **strs){
    char *minp=(char*)-1, *p;
    if(NULL==str || NULL==strs)return NULL;
    while(*strs){
        p=strstr(str, *strs++);
        if(p && minp > p)
            minp = p;
    }
    if(minp == (char*)-1) return NULL;
    return minp;
}

int main(){
    char *delimiters[] = {" ","&","<",">>",">", NULL};
    char data[]="cin>> num;";
    char *p;
    p = strpbrkEx(data, delimiters);//found ">>" but case of ">" distinction does not adhere
    printf("%s",p);
    return 0;
}
#包括 #包括 字符*strpbrkEx(常量字符*str,字符**strs){ char*minp=(char*)-1,*p; if(NULL==str | | NULL==strs)返回NULL; 而(*STR){ p=strstrstr(str,*strs++); 如果(p&&minp>p) minp=p; } if(minp==(char*)-1)返回NULL; 返回minp; } int main(){ 字符*分隔符[]={“,”&“,“>”,“>”,NULL}; 字符数据[]=“cin>>num;”; char*p; p=strpbrkEx(数据,分隔符);//找到“>>”,但“>”区分的大小写不一致 printf(“%s”,p); 返回0; }
#包括
#包括
#包括
字符*strpbrkEx(常量字符*str,字符**strs){
char*minp=(char*)-1,*p;
if(NULL==str | | NULL==strs)返回NULL;
而(*STR){
p=strstrstr(str,*strs++);
如果(p&&minp>p)
minp=p;
}
if(minp==(char*)-1)返回NULL;
返回minp;
}
int main(){
字符*分隔符[]={“,”&“,“>”,“>”,NULL};
字符数据[]=“cin>>num;”;
char*p;
p=strpbrkEx(数据,分隔符);//找到“>>”,但“>”区分的大小写不一致
printf(“%s”,p);
返回0;
}

@ron:如果不看看你是如何解析input@ron:如果看不到您是如何解析输入的,就不会知道