sizeof(),wcslen,strlen对于字符数组的使用

1.前提

1.1字符的种类

  字符分为两种

  • 字符常量char
       - 字符常量      1字节
       -多字符字面量    常见3字节
  • 宽字符wchar_t      windows使用UTF-16编码 所以是2字节,linux是UTF-32所以是32字节
1.2 常用的名词
  大小:字节数常用sizeof()
  计数:数组中元素的个数_countof()
  长度:在eof之前的字符数  >=计数的数值


2.sizeof()

用于计算sizeof()内类型的大小可以是数据类型,也可以是函数,但是函数只计算返回值的大小而且不运行。注明:计算字符串数组时候sizeof()函数会加上\0。
char* new_space = (char*)malloc(sizeof(int)+1)



3.strlen()

int main(int argc,char* argv[])
{
   char a[] = "hello";
   unsigned char b[] = "afternoon";
  int b1 = strlen(a);   //b1=6
   int b2 = strlen(b);  //错误不可以使用,类型错误。 unsigned char b []其实是 const ubsigned char* b[]
 }

在这里插入图片描述
所以说strlen()只能处理简单的char字符数组,当然也不可以直接放入其他类型,如wchar_t 当然还有一点是,strlen是根据null来判断数组的末尾的,但是wchar_t是可以直接放入null字符的。所以在vs2019中是直接显示错误。

4.wcslen()

这个函数是专门用来计算wchar_t的字节数。返回值为int

int main(int argc,char* argv[])
{
	char * p = NULL;
	char Int_array[] = {4,5,6,7,8,9};

	wchar_t array[] = L"中";
	p = Int_array;
	int a = _countof(Int_array);   //a=6

	int b = sizeof(array);   // b=4byte
	
	getchar();
	return 1;
}

trick  ctrl + u 转换为小写   
ctrl + shift + u 转换为大写    
ctrl + k 之后加上 ctrl+c添加注释   
ctrl+k 之后加上 ctrl + u 删除注释
tips 提供了标准模板类  bitset<32> a(100)

总的来说要注意数值类型,它具有大小,以及不同的类型编译器对它的处理也不同,例如接下来一篇文章中的unsigned char类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值