2012-05-22 159 views
0

我寫一個程序,獲取作爲輸入包含下列字符的任意字符串:使用strpbrk分隔字符串,分隔符爲「>>」?

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

的分隔符是這樣寫的:char delimiters[] = " &<>";,我用它們與strpbrk命令。我需要將分隔符">>"添加到此組。我怎樣才能做到這一點 ?

如果我只是寫:char delimiters[] = " &<>>>";,編譯器不會因此治療>>

不知道如何解決這個問題?

感謝

回答

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; 
} 
4

strpbrk使用char S作爲分隔符,而">>"不是一個字符,所以你不能只是用它作爲分隔符。既然你已經有了'>'作爲分隔符,你可以把一個特殊的情況,當你連續看到兩個。

+0

謝謝,也許任何的例子嗎? – ron

+0

@ron:會不知道沒有看到你如何解析輸入 –