实践证明,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()明显就是用来获取传入去的变量或数据类型所占的内存大小。
小问题也蕴含着大智慧!!
参考文献: