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:如果看不到您是如何解析输入的,就不会知道