我编写了一个程序,该程序将包含以下字符的任何字符串作为输入:
& , > , < , SPACE (e.g " ")
分隔符是这样写的 : char delimiters[] = " &<>";
,我将它们与strpbrk
命令一起使用。
我需要将分隔符添加">>"
到该组。我怎样才能做到这一点 ?
如果我只写 : char delimiters[] = " &<>>>";
,编译器不会>>
相应地处理 .
知道如何解决这个问题吗?
谢谢
strpbrk
使用char
s 作为分隔符,并且">>"
不是字符,因此您不能仅将其用作分隔符。由于您已经将'>'
其作为分隔符,因此当您连续看到两个时,您可以将其设为特殊情况。
#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;
}