fork download
  1. /* strtok example */
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main ()
  6. {
  7. char str[256];
  8. char *before1, *before2, *after1, *after2;
  9.  
  10. for(int i = 0; i < 26; i += 2) {
  11. str[i] = 'a' + i;
  12. str[i+1] = '-';
  13. }
  14.  
  15. printf("Before strtok, str: %s\n", str);
  16.  
  17. before1 = strtok (str,"-");
  18. before2 = strtok (NULL,"-");
  19.  
  20.  
  21. printf ("After strtok, str: %s\n\n", str);
  22. // ^ As visible, the input string str has been modified as well
  23.  
  24. printf ("Before re-initialization, before1: %s\n", before1);
  25. printf ("Before re-initialization, before2: %s\n\n", before2);
  26.  
  27.  
  28. for(int i = 0; i < 26; i += 2) {
  29. str[i] = 'z' - i;
  30. str[i+1] = ' ';
  31. }
  32. after1 = strtok (str," ");
  33. after2 = strtok (NULL," ");
  34.  
  35. printf ("After re-initialization, before1: %s\n", before1);
  36. printf ("After re-initialization, before2: %s\n", before2);
  37. printf ("After re-initialization, after1: %s\n", after1);
  38. printf ("After re-initialization, after2: %s\n", after2);
  39.  
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0s 9424KB
stdin
Standard input is empty
stdout
Before strtok, str: a-c-e-g-i-k-m-o-q-s-u-w-y-
After strtok, str: a

Before re-initialization, before1: a
Before re-initialization, before2: c

After re-initialization, before1: z
After re-initialization, before2: x
After re-initialization, after1: z
After re-initialization, after2: x