strtok :在一个字符串查找下一个符号

char *strtok( char *strToken, const char *strDelimit );

返回值:返回指向在strToken字符串找到的下一个符号的指针,当在字符串找不到符号时,将返回NULL.每

次调用都通过用NULL字符替代在strToken字符串遇到的分隔符来修改strToken字符串.

如果strtok函数第一个参数不是NULL,函数将找到字符串的第一个标记。strtok同时保存它在字符串中的位置。如果第一个参数是NULL,函数就在同一个字符串中从这个被保存的位置开始像前面一样查找下一个标记。字符串不存在更多的标记,则返回NULL;

 ];
 ;
#if 0
 array[index] = strtok(buf, " ");
 while(array[index] != NULL){
  printf("%s\n", array[index]);
  index ++;
  array[index] = strtok(NULL, " ");
 }
#else
 for(array[index] = strtok(buf, " "); array[index] != NULL; index++,\
   array[index] = strtok(NULL, " "))
  printf("%s\n", array[index]);
#endif

以下是实际应用中的一段代码:

 /*read file*/
 msg_t *read_t()
 {
     ;
     ;
     ];
     char* result = NULL;
     ],tmp[];
     FILE *fp;
     char delims[] = " ";
     memset(a,,);
    // msg_t * msg = NULL;

     if((fp = fopen("./c.txt","r"))== NULL)
     {
   perror("fopen");
     }

     ,fp) != NULL)//读取文件
     {
         printf("%s",buf);
         a[i] = strtok(buf,delims);
         while(a[i] != NULL) {//进行切割
             printf("%s\n",a[i]);
             i++;
             a[i] = strtok(NULL,delims);
         }
 #if DEBUG
         msg[j].type = *(a[]);
         strcpy(msg[j].name,a[]);
         strcpy(msg[j].pass,a[]);
         msg[j].age = atoi(a[]);
         strcpy(msg[j].sex,a[]);
         msg[j].salary = atoi(a[]);
         memset(a,,);
         j++;
         i = ;
         msg[j].type = '#';
 #endif
     }
     fclose(fp);
     return msg;
 }
 /*write file*/
 int write_t(msg_t *msg) {

     ;
     ;
     ];
     char* result = NULL;
     ],tmp[];
     FILE *fp;
     char delims[] = " ";
     memset(a,,);
 #if DEBUG
        while(msg->type != '#'){
     printf("%c\t",msg->type);
     printf("%s\t",msg->name);
     printf("%s\t",msg->pass);
     printf("%5d\t",msg->age);
     printf("%s\t",msg->sex);
     printf("%5d\n",msg->salary);
       msg++;
        }
 #endif

     if((fp = fopen("./a.txt","a")) == NULL){
         ;
     }
     memset(buf,,);
     sprintf(buf,"%c %s %s %d %s %d\n",msg->type,msg->name,msg->pass,
         msg->age,msg->sex,msg->salary);//字符串拼写
     fwrite(buf,,fp);//写入文件
     fclose(fp);

     ;
 }

最新文章

  1. 从三栏自适应宽度布局到css布局的讨论
  2. IOS-WebViewJavascriptBridge使用说明
  3. 在Spring Boot中使用Https
  4. 【代码笔记】iOS-看图听故事
  5. Beta版本冲刺———第二天
  6. Linux 守护进程二(激活守护进程)
  7. DOM-based xss
  8. echarts标准饼图解读(一)——提示框(tooltip)配置
  9. Maprduce重写参考
  10. tomcat 8.0 安装
  11. Keil C减小代码编译量大小的方法(gai)
  12. 第1章3节《MonkeyRunner源码剖析》概述:架构(原创)
  13. CLR类型设计之属性
  14. openstack Keystone验证服务集群
  15. java finally深入探究
  16. java中阻止类的继承
  17. H5游戏接微信小游戏的支付,满满的都是坑!
  18. Mycat 数据库分库分表中间件
  19. VC6.0启动File-open和Project-add file to project崩溃的解决方法
  20. Jquery 在多个相同标签click的问题

热门文章

  1. (转) Parameter estimation for text analysis 暨LDA学习小结
  2. [洛谷P3261][JLOI2015]城池攻占
  3. POJ3304:Segments——题解
  4. 20165218 预备作业3 Linux安装及学习
  5. 关于Mybatis的@Param注解 及 mybatis Mapper中各种传递参数的方法
  6. ACM1881 01背包问题应用
  7. 关于我之前写的修改Windows系统Dos下显示的用户名之再修改测试
  8. JAVA 枚举单例模式
  9. webstorm常用功能快捷方式
  10. UVALive-3263 That Nice Euler Circuit (几何欧拉定理)