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