2015-11-29 77 views
0

我有一個名爲temps的字符數組傳遞給一個函數。該格式將永遠是這樣的:使用strtok()分割字符數組C

1 1.1

我想將它拆分並保存這兩個數。這是他們之間的空間,但經過研究strtok(),我不知道它是如何工作的。

void seperate(char *tempformat){ 
    char s1[10]; 
    char s2[10]; 

    s1 = strtok(); 
    s2 = strtok(); 
} 
+0

[使用C中的strtok]的可能的複製(http://stackoverflow.com/questions/8106765/using-strtok-in-c) – redobot

+0

'strtok'是危險的,你可能想避免使用它。你可能更喜歡'strchr'或類似的做一個嵌套安全的代碼。 'strtok'在它自己內部有一個靜態變量,當它用NULL作爲參數調用時不會改變。 錯誤行爲示例: 您有一個名爲'pre_separate'的函數,需要調用您的''separate''函數。但是'pre_separate'也會在循環中使用strtok,在這個循環中也會調用'separate'。那麼,這兩個函數都會用NULL參數調用'strtok',搞亂了初始指針。 – emi

回答

0

你可以做到這一點是:

char *result; 
char s=" "; //space(delimiter) 
char str[]; 
result = strtok(tempformat, s); 
void seperate(char *tempformat){ 
    while(result != NULL) { 
     printf(" %s\n", result); //You can save the result into a array of characters as well. 
     result = strtok(NULL, s); 
    } 
}