从C#、JAVA到C ,让我觉得像是从公产主义社会回到了原始社会,不顺手,所以很心里憋气!!!

函数名: strtok 
功  能: 查找由在第二个串中指定的分界符分隔开的单词 
用  法: char *strtok(char *str1, char *str2); 
程序例: 

#include <string.h> 
#include <stdio.h> 

int main(void) 

   char input[16] = "abc,d"; 
   char *p; 

   /**//* strtok places a NULL terminator 
   in front of the token, if found */ 
   p = strtok(input, ","); 
   if (p)   printf("%s\n", p); 

   /**//* A second call to strtok using a NULL 
   as the first parameter returns a pointer 
   to the character following the token  */ 
   p = strtok(NULL, ","); 
   if (p)   printf("%s\n", p); 
   return 0; 

下面是恶心的strtok函数,用作分割字符串
它的第二个参数不能是char*的变量,是char[]的变量则没问题
FUCK!
我做了N多次测试才发现的这个问题,害得我调试UNIX网络编程作业好长时间

这个函数的调用真是奇怪
第一次要设定参数,第二次参数竟然可以NULL
然后函数竟然能分割第一次参数设置的字符
我无语了
这样的设计也太不人性化了

下面认真的说一下这个函数,如有哪个和我一样郁闷的人发现这篇文章,或许能少走些弯路
函数第一次调用需设置两个参数,strtok(str,",") str 需要分割的串 “,”根据,分割
第一次分割的结果,返回串中第一个,之前的字串,也就是上面的程序第一次输出abc

第二次调用该函数strtok(NULL,"."),第一个参数设置为NULL,第二个参数还是分割的依据
结果返回分割依据后面的字串,即上面的程序输出d

转载于:https://www.cnblogs.com/lancidie/archive/2011/02/04/1949185.html

恶心的C语言strtok函数相关推荐

  1. C语言strtok函数使用实例以及注意事项

    C语言strtok函数使用 使用场景 代码实例 注意事项 参考 使用场景 字符串内容中被某个或者某些字符分割成若干部分,需要取出被分隔的若干个子字符串又不想去确定特殊字符的个数. 比如将下列字符串21 ...

  2. C语言strtok()函数:字符串分割

    1.头文件:#include <string.h> 2.定义函数:char * strtok(char *s, const char *delim);      分解字符串为一组字符串.s ...

  3. C语言strtok函数的用法

    先理解strtok函数的定义,尤其是指针方面的,需要自己理解. 原型: char *strtok(char *s, const char *delim); #include<string.h&g ...

  4. C语言strtok函数

    strtok是C语言用于分割字符串的函数,需要include<string.h>. 第一次使用时第一个参数传入待分割的字符串,第二个参数传入分割符号. 第二次使用时第一个函数传入NULL, ...

  5. c语言strtok函数完美实现

    看到网上好多错误的strtok实现,也不能说错,准确的说是没有完全的实现strtok,现自己写了下,目前还没有找到bug,如果有不对的欢迎指出. 大多数网上的strtok实现的代码跑不过a[]={&q ...

  6. c语言以空格分割字符串_C语言strtok()函数:用指定的分隔符分解字符串

    函数名: strtok 头文件: 函数原型: char *strtok(char *str1, const char *str2); 功能: 用指定的分隔符分解字符串 参数:   char *str1 ...

  7. 切割字符串长度php,C++_C语言中计算字符串长度与分割字符串的方法,C语言strlen()函数:返回字符串 - phpStudy...

    C语言中计算字符串长度与分割字符串的方法 C语言strlen()函数:返回字符串的长度头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int str ...

  8. 【摘录】C语言中利用 strtok函数进行字符串分割

    C语言不像Java,Php之类的高级语言,对象中直接封装了字符串的处理函数.C语言中进行普通的字符串处理也经常会让我们焦头烂额--不过好在C语言 中还是提供了像strtok这样功能强大的字符串处理函数 ...

  9. C语言字符串函数(3)strstr,strtok函数的详解

    上一期,我讲解了关于字符串函数中,受限制的字符串函数,有想了解的小伙伴们可以点此链接去看看:C语言字符串函数(2)受限制的字符串函数 那么今天,我来讲一讲标题中这两个函数的作用和使用方法. 目录 一. ...

最新文章

  1. esp32 camera_利用Phyphox和ESP32蓝牙制作欧姆表测电阻
  2. 诺奖团队最新研究:独居太久容易睡眠不足、暴饮暴食 | Nature
  3. python 获取闭包函数的参数
  4. cvtColor函数
  5. 数据库存储引擎学习总结
  6. springboot文件上传服务器,SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)
  7. Ubuntu11.04 3945ABG无线网卡驱动安装
  8. 银隆新能源:涉嫌诈骗财政资金过亿 孙国华等人被刑拘
  9. 如果女孩子一辈子不结婚,那会是怎样的人生?
  10. 关于SVN版本控制工具的冲突解决方案
  11. linux --- 启动过程
  12. 一些很有意思的文章_拔剑-浆糊的传说_新浪博客
  13. python怎么创建桌面快捷方式_Python3创建RIDE桌面快捷方式的另一种方法
  14. python:textwrap --文本自动换行与填充
  15. (python热门库之)PyQt5常用代码
  16. LOL服务器人数最新,英雄联盟大区人数排名
  17. matlab pca 主元 贡献,主元分析(PCA)原理
  18. CloudBees程序员就如何开发可大规模扩展的HTTP服务器进行演讲
  19. Pygame详解:前言
  20. 游戏设计的作品集到底该怎么做?

热门文章

  1. Python3.X新特性之print和exec
  2. 给定一个数值,输出符合中国人习惯的读法--记一道笔试题
  3. ystem.Windows.Forms.SplitContainer : ContainerControl, ISupportInitialize
  4. 关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
  5. SOA 设计原则和 Web 服务中的数据传输
  6. 微信小程序,你的场景呢?
  7. 516%增长:微博如何熬过七年之痒?
  8. 走进腾讯 |《产品经理第一课》宜信、零度无人机、悦跑圈核心团队独家分享爆款产品的打造秘籍...
  9. 运营资源很少的时候,怎么运营自己的产品(完结)
  10. PMCAFF | 刷微信朋友圈行为分析:刷朋友圈是一种感觉?有一种批皇帝批奏章的感觉...