我寫一個程序,獲取作爲輸入包含下列字符的任意字符串:使用strpbrk分隔字符串,分隔符爲「>>」?
& , > , < , SPACE (e.g " ")
的分隔符是這樣寫的:char delimiters[] = " &<>";
,我用它們與strpbrk
命令。我需要將分隔符">>"
添加到此組。我怎樣才能做到這一點 ?
如果我只是寫:char delimiters[] = " &<>>>";
,編譯器不會因此治療>>
。
不知道如何解決這個問題?
感謝
我寫一個程序,獲取作爲輸入包含下列字符的任意字符串:使用strpbrk分隔字符串,分隔符爲「>>」?
& , > , < , SPACE (e.g " ")
的分隔符是這樣寫的:char delimiters[] = " &<>";
,我用它們與strpbrk
命令。我需要將分隔符">>"
添加到此組。我怎樣才能做到這一點 ?
如果我只是寫:char delimiters[] = " &<>>>";
,編譯器不會因此治療>>
。
不知道如何解決這個問題?
感謝
#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;
}
strpbrk
使用char
S作爲分隔符,而">>"
不是一個字符,所以你不能只是用它作爲分隔符。既然你已經有了'>'
作爲分隔符,你可以把一個特殊的情況,當你連續看到兩個。
謝謝,也許任何的例子嗎? – ron
@ron:會不知道沒有看到你如何解析輸入 –