strtok() Function in C: Tokenizing Strings

Rumman Ansari   Software Engineer   2024-07-05 04:35:49   7250  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

strtok() function in C tokenizes/parses the given string using delimiter. Syntax for strtok( ) function is given below.

Syntax

char * strtok ( char * str, const char * delimiters );

Important Note

strnset() function is non standard function which may not available in standard library in C.

Program

In this program, input string Test,atnyla,education,string2:Test:string3 is parsed using strtok() function. Delimiter comma (,) is used to separate each sub strings from input string.

<span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;stdio.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;string.h&gt;</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> main </span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
  </span><span class="kwd">char</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">[</span><span class="lit">50</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="str">"Test,atnyla,education,string2:Test:string3"</span><span class="pun">;</span><span class="pln">
  </span><span class="kwd">char</span><span class="pln"> </span><span class="pun">*</span><span class="pln">p</span><span class="pun">;</span><span class="pln">
  printf </span><span class="pun">(</span><span class="str">"String  \"%s\" is split into tokens:\n"</span><span class="pun">,</span><span class="kwd">string</span><span class="pun">);</span><span class="pln">
  p </span><span class="pun">=</span><span class="pln"> strtok </span><span class="pun">(</span><span class="kwd">string</span><span class="pun">,</span><span class="str">",:"</span><span class="pun">);</span><span class="pln">
  </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">p</span><span class="pun">!=</span><span class="pln"> NULL</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">{</span><span class="pln">
    printf </span><span class="pun">(</span><span class="str">"%s\n"</span><span class="pun">,</span><span class="pln">p</span><span class="pun">);</span><span class="pln">
    p </span><span class="pun">=</span><span class="pln"> strtok </span><span class="pun">(</span><span class="pln">NULL</span><span class="pun">,</span><span class="pln"> </span><span class="str">",:"</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
  </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span>

Output

String  "Test,atnyla,education,string2:Test:string3" is split into tokens:
Test
atnyla
education
string2
Test
string3
Press any key to continue . . .

No Questions Data Available.
No Program Data.

Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.