4
A
回答
9
在linux上有strsep。
的strsep()函數被引入 作爲的strtok()的替代品,因爲 後者不能處理空 字段。但是,strtok() 符合C89/C99,因此更便於攜帶。
6
您可以使用strchr
(僅限一個分隔符)或strcspn
(對於一組可能的分隔符)來查找下一個分隔符,處理該令牌,然後向前推送一個字符。做一個循環,你有你所需要的。
0
Drakosha給出了正確的答案。我想爲兩個變體添加一個示例。
隨着strtok的:
char *token;
char *tmp_string;
char delimiter[10] = " |,.:";
strcpy (tmp_string, "1:2::4");
token = strtok(tmp_string, delimiter); // first token
while(token != NULL) {
i++;
printf ("i=%d\tToken: len(%d)\t%s", i, strlen(token), token);
// do something
token = strtok(NULL, delimiter); /* next token */
}
隨着strsep(會識別 「」):
char *token;
char *tmp_string;
char delimiter[10] = " |,.";
strcpy (tmp_string, "1:2::4");
token = strsep(&tmp_string, delimiter); // first token
while(token != NULL) {
i++;
printf ("i=%d\tToken: len(%d)\t%s", i, strlen(token), token);
// do something
token = strsep(&tmp_string, delimiter); /* next token */
}
+0
'char * tmp_string;' 'strcpy(tmp_string,「1:2 :: 4」);' 將導致內存問題... – karelv 2016-09-19 12:28:46
相關問題
- 1. 的strtok和轉義字符
- 2. strtok的段錯誤
- 3. C - strtok和strcmp
- 4. strtok與空格分隔符
- 5. 的strtok用空格用C
- 6. 分段錯誤 - Strtok - Linux C
- 7. 構造,strtok,分段錯誤
- 8. strtok的分段錯誤
- 9. strtok()在c - 分段錯誤
- 10. strtok中的分段錯誤
- 11. 獨特和空的字段
- 12. Groovy split csv和空字段
- 13. Linq和排序空字段
- 14. Laravel4 Validator和空字段
- 15. RESTeasy,JSON和空字段
- 16. strtok字符串和修改令牌值
- 17. Strtok和Strcat衝突
- 18. strtok和strcpy錯誤
- 19. strtok和strncat錯誤
- 20. Django的MongoDB字段(空和空)
- 21. strtok返回字符串?
- 22. Strtok問題C(EOF字符?)
- 23. 解析字符串的strtok()
- 24. strtok的單個字符的
- 25. 讀取文件和使用Strtok,一些字段讀取成功,一些字段不
- 26. Excel空字段
- 27. CURLOPT_POST字段空
- 28. Python空字段
- 29. 如何使用strtok來解析空白字符串?
- 30. 是包含在函數strtok的返回值中的空字符?
strsep()也是線程安全的(或可製成這種方式),其中的strtok()是非常非常。 – ceo 2010-03-04 18:37:10