使用strpbrk分隔字符串,分隔符“>>”?

时间:2012-05-22 20:05:00

标签: c string

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

& , > , < , SPACE (e.g " ")

分隔符的编写方式如下:char delimiters[] = " &<>";,我将它们与strpbrk命令一起使用。

我需要将分隔符">>"添加到此组中。我怎样才能做到这一点 ?

如果我只写char delimiters[] = " &<>>>";,编译器不会相应地处理>>

知道如何解决这个问题吗?

谢谢

2 个答案:

答案 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;
}