1. strtok

问题背景: 解析形如 “1,2,3,4,5”字符串到整数数组

(1)计算个数

char* delim = ",";

int count = 0;

int *numbers = NULL;

char* str = "1,2,3,4,5";

char* token = strtok(str,delim);

while(token){

  count++;

  token = strtok(NULL, delim);

}

(2)申请内存,记录数字

numbers = (int*)malloc(sizeof(int)*count);

token = strtok(str, delim);

int index = 0;

while(token){

  numbers[index++] = atoi(token);

  token = strtok(NULL, delim);

}

问题记录:strtok()函数修改了str字符串本身,所有逗号被改成了‘\0’。因此(2)里面再用strtok操作str字符串将出现问题

2. strncpy

问题背景: 字符串拷贝

struct  A{

char ifname[16];

char a;

char b;

}

char c[32] = {0};

strncpy(c, "abcdef", 32-1);

strncpy(A.ifname, c, 32-1);

问题记录:第二个拷贝会修改 A.a 的值,改成空字符, 因为strncpy当遇到空字符拷贝结束时,若拷贝个数未达到第三个参数count,则使剩余的为空字符,直到count个数。

注:strncpy(dest, src, count),count的长度不要超过dest所能容纳的最大字符数,若为字符串,最大应为count-1更保险。

最新文章

  1. Swift微博编写感
  2. cocos2d-x 运行时xcode提示错误:"vtable for XXX", referenced from 问题已解决;
  3. Mysql数据库之Binlog日志使用总结
  4. zookeeper系列之通信模型(转)
  5. Emmet语法大全手册
  6. WCF 入门(19)
  7. codevs 1378选课 树形DP
  8. PHP数据访问
  9. Unicode和多字节字符集 (MBCS) 杂谈
  10. 使用Twisted进行socket编程
  11. CAS协议 - CAS URIs
  12. C#调用C++的DLL 数据类型转换
  13. C++学习笔录2
  14. MAC环境下生成Apple证书教程
  15. 杨氏矩阵查找元素位置Java实现
  16. HTML <button>标签
  17. PAT乙1001
  18. 201521123100 《Java程序设计》第6周学习总结
  19. VS2017的MVC和Angular联合开发的配置文件作用
  20. 翻译下 golang package time

热门文章

  1. 浅谈DPCHookSSDT和RemoveDPC
  2. (3)一般处理程序 ,HttpContext类
  3. fastscript增加三方控件
  4. SharePreferences使用
  5. java高级编程-使用反射强制给private字段赋值
  6. from: 关于RabbitMQ
  7. [Guava源代码阅读笔记]-Basic Utilities篇-1
  8. IntelliJ IDEA 10.5.1 引用外部Jar包
  9. C++11 并发指南系列(转)
  10. iOS学习笔记12-网络(一)NSURLConnection