实践证明,C中的strlen和sprintf都可以取得字符串(数组)的长度。
sprintf的主要功能还是把格式化的数据写入某个字符串中,获取该字符串长度只是它的附加功能罢了。
-
#include <stdio.h>
-
#include <string.h>
-
int main()
-
{
-
char bufsend[1024];
-
memset(&bufsend,0,sizeof(bufsend));
-
int cmd_len = 0;
-
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");
-
printf("cmd_len from sprintf = %d\n",cmd_len);
-
-
cmd_len = strlen(bufsend);
-
printf("cmd_len from strlen = %d\n",cmd_len);
-
-
cmd_len = sizeof(bufsend);
-
printf("cmd_len from sizeof = %d\n",cmd_len);
-
getchar();
-
return 0;
-
}
sizeof()明显就是用来获取传入去的变量或数据类型所占的内存大小。
小问题也蕴含着大智慧!!
参考文献:
http://blog.sina.com.cn/s/blog_980cf62a0100ya0z.html
http://blog.chinaunix.net/uid-20519550-id-1655935.html
阅读(2900) | 评论(0) | 转发(0) |