char *strtok(char s[], const char *delim);

此处)折叠或打开


1. #include<iostream>
2. <string.h>
3. <string>
4. ;
5. int main()
6. {
7. [] = "Hello world";
8. *token = strtok(str," ");
9. //cout << token << endl;
10. while (token != NULL)
11. {
12. string s(token);
13. = strtok(NULL," ");
14. << s << endl;
15. }
16. ;
17. }

输出:


[root@localhost c++]# ./a.out 

 Hello 

 world



应用:删除重复字符串




此处)折叠或打开

1. #include<iostream>
2. <map>
3. <string.h>
4. <string>
5. ;
6. int main()
7. {
8. [200] = {0};
9. [200] = {0};
10. *token = NULL;
11. <string,int> wordMap;
12. string output;
13. int i = 0,j = 0;
14. (str);
15. for (int i = 0;str[i] != '\0';i++)
16. {
17. if (str[i] == ',' || str[i] == ' ')
18. {
19. [j] = ' ';
20. ++;
21. }
22. else
23. {
24. [j] = str[i];
25. ++;
26. }
27. }
28. [j] = '\0';
29. (str,strbak,sizeof(strbak)+1);
30. = strtok(str," ");
31. while (token != NULL)
32. {
33. string s(token);
34. [s]++;
35. = strtok(NULL," ");
36. }
37. int count = 0;
38. = strtok(strbak," ");
39. while (token != NULL)
40. {
41. string s(token);
42. if (wordMap[s] >= 1)
43. {
44. if (count == 0)
45. {
46. = output+s;
47. [s] = 0;
48. }
49. else
50. {
51. = output+" "+s;
52. [s] = 0;
53. }
54. ++;
55. }
56. = strtok(NULL," ");
57. }
58. << output<< endl;
59. ;
60. }

运行结果:


[root@localhost c++]# ./a.out 

 i love love zhouyi 

 i love zhouyi