我在C中使用strtok時遇到了問題。我使用fgets從命令行獲取用戶輸入,我想用管道(「|」)作爲分隔符對其進行標記,並將結果放入雙指針變量。這裏是我的代碼:在C語言中使用strtok
char** argv;
char *token;
token = strtok(userInput, "|");
while(token != NULL){
*(argv++) = token;
token = strtok(NULL, "|");
}
*argv = '\0';
然後我用這個代碼來驗證它是否以及標記化
while(*argv!= NULL)
{
if((strcmp(*argv, "|") == 0){
count = count + 1;
}
argv++;
}
printf("%d pipes", count);
但它不工作。 char ** argv不包含任何內容。代碼的執行停止並返回-1。當我嘗試打印argv時,argv不包含任何值。
有什麼想法嗎?謝謝。
編輯:
我想要做的就是這個
userInput = "abc|cde";
使用的strtok後。我想有一個** argv的
**argv = "abc";
*,但它不工作*到底會發生什麼? – Dennis
當你說它不起作用時,你會得到什麼錯誤? –
「不起作用」是什麼意思?該代碼完全符合您的要求。這可能與您所期望的不同,但不可能猜測您是否不願意告訴我們。 –