我正在嘗試拆分兩個單詞(以及更多單詞),并通過使用 strtok 將其拆分為標記將它們放入一個陣列中。我的分隔符包括" \t\n";如下所示的代碼。例如,如果我輸入"cat program.c",它只會列印cat令牌而不是program.c令牌,我不知道為什么。我的分隔符不正確還是我沒有正確拆分字串?這是代碼
char b[256];
int k = 0;
char *args[4];
char *tokens;
char delimiters[] = " \t\n";
printf("Please enter the command you want to use:\n");
scanf("%5s", b);
tokens = strtok(b, delimiters);
while (tokens != NULL){
args[k ] = tokens;
printf("%s\n",tokens);
tokens = strtok(NULL, delimiters);
}
uj5u.com熱心網友回復:
問題不在于strtok(),而在于scanf()。一個%s場指令掃描一個空格分隔字串,所以當輸入cat program.c,只有“貓”曾使得它成為陣列b擺在首位。( program.c剩下的等待被閱讀。)如果你想一次閱讀一整行輸入,那么我會推薦fgets(),而不是。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327476.html
