我使用了一個我想分析的全局字符串。分析是從多個功能完成的。 例如,我從func1()中提取第一個標記,然後從func2()中的相同全局字符串中提取第二個標記等等。
這可能嗎?我知道在第一個標記之後的提取是通過strtok(NULL,delimiter)完成的,strtok保存指向分隔符的下一個字節的指針替換爲null,但是我找不到描述strtok如何保存字符串它會在不同的功能中完成分隔。C strtok來自多個函數的全局字符串
1
A
回答
1
可能。 strtok將字符串保存到靜態內存。
例如
#include <stdio.h>
#include <string.h>
char sentence[] = "The quick brown fox jumps over the lazy dog";
char* sentencep = sentence;
char* func1(void){
char* p = sentencep;
if(sentencep != NULL)
sentencep = NULL;
return strtok(p, " ");
}
char* func2(void){
char* p = sentencep;
if(sentencep != NULL)
sentencep = NULL;
return strtok(p, " ");
}
int main(){
puts(func1());//The
puts(func2());//quick
puts(func2());//brown
puts(func1());//fox
return 0;
}
+0
請參閱http://research.microsoft.com/en-us/um/redmond/projects/invisible/src/crt/strtok.c.htm – BLUEPIXY 2011-12-27 13:21:48
相關問題
- 1. 全局字符串函數
- 2. C字符串數組的strtok()
- 3. C多個Strtok來確定分隔符
- 4. C++中的全局字符串數組
- 5. 用strtok分割一個C字符串
- 6. 在C++中使用字符串arg的全局函數
- 7. C++ strtok函數
- 8. 函數創建一個字符串在C中的數組沒有strtok
- 9. strtok的字符串,並將它傳遞給另一個函數
- 10. strtok返回的字符串太多
- 11. 來自字符串函數的圖像
- 12. C#字符串函數來得到字符兩個符號
- 13. 使用strtok將字符串劃分爲一個數組C使用strtok
- 14. 來自ifstream的C++字符串數組
- 15. 如何使用Tokenization比較兩個字符串,即strtok()函數?
- 16. 拆分字符串在C strtok()
- 17. 解析字符串的strtok()
- 18. 一個行函數來替換字符在C#字符串
- 19. 來自查詢字符串的MVC控制器全局變量
- 20. strtok函數線程安全
- 21. 來自字符串C的子字符串數組#
- 22. 在Objective-C全局字符串變量
- 23. 如何實現全局字符串C#
- 24. Obj-C全局字符串和變量
- 25. C++:如何修改全局字符串?
- 26. C++ Lua中,獲取全局字符串
- 27. 在C中使用strtok使用多個分隔符的分割字符串
- 28. C++的strtok在函數改變原始字符串值作爲參數
- 29. 的strtok函數c解釋
- 30. 是否可以傳遞一個函數來使用一個字符串來創建一個全局矩陣?
因爲您說過「全局字符串」,請確保您使用'strtok'的字符串不是字符串文字。 – 2011-12-26 22:35:25