zoukankan      html  css  js  c++  java
  • 探究一下strtok的用法

    首先,我们看看man 手册中如何说?

    说白了,就是截取指定分割符的字符串,怎么用呢?

    我们来看一个我们自己写的一个实现strtok函数的功能的模型:

    int strtok(char * buf,int len)
    {
      int i = 0;
      char *p;
      char *arg[10];

      fgets(buf,len,stdin);
      buf[strlen(buf) - 1] = '';

      p = buf;
      for(; *p != '';){

      while(*p == ' '){
        p ++;
      }

      arg[ i ++] = p;

      while(*p != ' ' && *p != ''){
      p ++;
      }

      if(*p != ''){
        *p++ = '';
      }
     }

      arg[i] = NULL;

      for(i = 0;arg[i] != NULL;i ++){
      printf("%s ",arg[i]);
     }
      return 0;
    }

    似乎有点小麻烦,其实这些事情strtok函数已经帮你做了,不信请看更简单的用法:

    int main(int argc, const char *argv[])
    {
      int i = 0;
      char *p;
      char *arg[10];
      char buf[1024];

      fgets(buf,sizeof(buf),stdin);
      buf[strlen(buf) - 1] = '';

      arg[i] = strtok(buf," ");

      while(arg[++i] = strtok(NULL," "))
       ;

      for(i = 0; arg[i] != NULL;i ++){
        printf("%s ",arg[i]);
           }

      return 0;
    }

    测试结果如下:

    输入:hello world

    输出:hello

       world

    是不是很简单呢!

  • 相关阅读:
    怎样为flash配置Alcon调试工具
    8.9Go简介
    8.14GO之条件语句
    8.10Go之基础语法
    8.11Java之数组知识回顾
    8.13Go之常量
    8.10Go执行流、编译、特点、转义字符
    8.14Go之运算符(Operator)
    8.14Java之使用HttpClient类通过POST方式上传文件
    8.10Go之语言数据类型
  • 原文地址:https://www.cnblogs.com/bwbfight/p/9267617.html
Copyright © 2011-2022 走看看