Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12838765
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: C/C++

2015-03-28 16:42:02

    实践证明,C中的strlen和sprintf都可以取得字符串(数组)的长度。
    sprintf的主要功能还是把格式化的数据写入某个字符串中,获取该字符串长度只是它的附加功能罢了。

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     char bufsend[1024];
  6.     memset(&bufsend,0,sizeof(bufsend));
  7.     int cmd_len = 0;
  8.     cmd_len = sprintf(bufsend,"spectrum 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20\n");
  9.     printf("cmd_len from sprintf = %d\n",cmd_len);

  10.     cmd_len = strlen(bufsend);
  11.     printf("cmd_len from strlen = %d\n",cmd_len);

  12.     cmd_len = sizeof(bufsend);
  13.     printf("cmd_len from sizeof = %d\n",cmd_len);
  14.     getchar();
  15.     return 0;
  16. }

image

    sizeof()明显就是用来获取传入去的变量或数据类型所占的内存大小。

 

小问题也蕴含着大智慧!!       

参考文献:

http://blog.sina.com.cn/s/blog_980cf62a0100ya0z.html

http://blog.chinaunix.net/uid-20519550-id-1655935.html

阅读(2885) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~