我现在一直在寻找如何做到这一点。到目前为止,我发现的方法并没有取得成功。
在该页面中,有一个名为fileman.c的示例程序,特别是此函数:
Pattern p = Pattern.compile("is (.+)");
stream1.map(p::matcher)
.filter(Matcher::find)
.forEach(matcher -> System.out.println(matcher.group(1)));
我试图了解如何以这种方式访问char *单词以便能够检查它的元素?例如 - 如果我想检查char *字的第一个元素是'#'并且基于那个做某些逻辑,而不是当这个词从其他任何东西开始时?我是C的新手,发现我已经习惯了很多其他语言的东西;咳嗽Python;在C中本质上更难。
谢谢!
答案 0 :(得分:0)
要检查指针数组的第一个元素,只需使用ptr_name[0]
其中" ptr_name"是指针数组的名称/标识符。
如果您正在尝试查看特定字符是否为井号/井号。只需这样做:
if( word[0] == '#' ) // run code
答案 1 :(得分:0)
我能用一个标记器来解决这个问题。
/*Tokenizer, splits the arguments and detects presence of i/o or piping.*/
void Tokenize(char *sentence, char** StorageArray, char * delimiter)
{
char *token;
char *next_token;
int counter = 1, position = 0;
token = strtok(sentence, delimiter);
next_token = token;
while (next_token != NULL){
TokenCount++;
StorageArray[position] = token;
/*Check for input / output markers*/
if(strcmp(StorageArray[position], "<") == 0){ flagInput = 1;}
if(strcmp(StorageArray[position], ">") == 0){ flagOutput = 1;}
/*Check for pipeline instructions.*/
if(strcmp(StorageArray[position], "|") == 0){ flagPipeInst = 1;}
position++;
if((next_token = strtok(NULL, delimiter))){
token = next_token;
}
counter++;
}
counter--;
}
在将内容传递给执行命令之前,我获得了所有令牌。