码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 两个小知识点

时间:2017-07-05 23:02:26      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:知识点   知识   visual   clu   printf   extern   vc6   eve   string   

strlen 函数原型

extern unsigned int strlen(char *s);
Visual C++ 6.0中,原型为size_t strlen(const char *string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t; 。
头文件:string.h
格式:strlen (字符数组名)
功能:计算给定字符串的(unsigned int型)长度,不包括‘\0‘在内
说明:返回s的长度,不包括结束符NULL。
举例:
//char*s="Gold";
char s[100]="Gold";
printf("%s has %d chars",s,strlen(s));

结果:两者的结果都一样。技术分享

 

那如何测试字节数组的大小呢?结论是无法使用strlen函数,只能通过间接的办法求:

 

#include <stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{   
    unsigned char sendStr[32] ={128,154,178,201,221,237,248,255,255,252,243,229,211,190,166,141,
                        115,90,66,45,27,13,4,1,1,8,19,35,55,78,102,128}; //默认发送串1(实际为0),1,8
    
     printf("数字:   %d  \n",sizeof(sendStr)/sizeof(unsigned char));
 
    return 0;
}

通过总的字节数除以单个元素的大小进行求解。


 

unsigned char 数字范围为 0-255;如果赋值一个数为256,那么数据溢出,显示结果为0

 

C语言 两个小知识点

标签:知识点   知识   visual   clu   printf   extern   vc6   eve   string   

原文地址:http://www.cnblogs.com/shuqingstudy/p/7123734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!