簡體   English   中英

strtok()函數在C中無法正常工作

[英]strtok() function not working properly in C

我使用以下代碼在C語言循環中應用了strtok()

printf("%s",line);
printf("%d %d %d\n",atoi(strtok(line," ")),atoi(strtok(NULL," ")),atoi(strtok(NULL," ")) );

輸出為:

103 70 105 150

103 0 0

115 17 127 21

115 127 17

10 108 105 97

10 105 8

13 122 43 8

13 43 122

50 187 35 71

50 35 187

奇數行表示使用strtok()之后的行和偶數行。

我不知道為什么我不把每個數字分開

即在103 70 105 150我需要將所有數字都以偶數行分隔。

在您的情況下,printf參數的評估順序與您想象的相反。 實際上,參數的求值順序不是在C語言中嚴格定義的,因此您應將代碼重新排列為:

printf("%d ",atoi(strtok(line," ")));
printf("%d ",atoi(strtok(NULL," ")));
printf("%d\n",atoi(strtok(NULL," ")));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM