strtok函数

目录

分隔函数 strtok

函数原型:

参数:

返回值:

 代码演示:

函数解析:

注意事项:


分隔函数 strtok

函数原型:

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

参数:

  • str—要被分解的字符串
  • sep—用作分隔符的字符(可以是一个,也可以是集合)

返回值:

  • 该函数返回被分解的第一个子字符串,若无可检索的字符串,则返回空指针

 代码演示:

strtok函数_第1张图片

 输出结果:

strtok函数_第2张图片

函数解析:

  • strtok的参数中,sep表示的其实是一个分隔符的合集。
  • strtok 会把字符串中的分隔符当作一个标记,同时会把标记变为\0
  • 同时会返回,标记位置之前(或者是标志位置之前,前一个标记位置之后)的一个字符串。
  • 同时strtok会改变原先的字符串,因为分隔符变成了\0
  • 当把一个标记变成\0后,strtok会记录这个标记的位置,并且在这个标记往后,继续往下寻找是否有在sep记录中的标记,也因此,在第一次使用strtok时,第一个参数是需要分隔的字符串,当第二次还是针对该字符串使用时,strtok的第一个参数变成了NULL,其余往后的也同样是NULL

注意事项:

(1)sep 

  • 很多人在使用strtok的时候会放不开手脚,因为他们认为strtok的分隔符只有一个,但是sep是一个分隔符的集合,也就是说,我们设置一个字符串:[email protected] 我们可以设置sep为 "@.",这样一个合集,当strtok在字符串中寻找标记时,是寻找字符串中是否有和sep内部字符相配符号。

(2)分隔符可不可以出现在第一个字符?

  • 答案是:可以
    当strtok分解的字符串首字符就是分隔符,那么strtok()会忽略首个分隔符,直接从第二个分隔符往下继续分解,例如:@[email protected]  那么strtok()会忽略第一个@,还是以[email protected] 的字符串形式继续分解。

strtok函数_第3张图片

你可能感兴趣的:(C语言,c语言,指针,字符串,函数)