string,char,char*,char a[] 占字节数, 以及sizeof,strlen(),str.length()的用法

 

// studystring.cpp : 
//

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
	
    cout<<"char,char*,string 在C++中的占几个字节: -------------------------"<<endl;
	cout<<"sizeof(char) = "<<sizeof(char)<<endl; //=1
	cout<<"sizeof(char*) = "<<sizeof(char*)<<endl; //=4
	cout<<"sizeof(string) = "<<sizeof(string)<<endl; //=16
    cout<<"----------------------------------------------------------------"<<endl;
	cout<<endl;cout<<endl;

	string str;
	str = "12345678912"; // 11个字符
	cout<<"the size of str = "<<sizeof(str)<<endl; // = 16
	cout<<"the length of str = "<<str.length()<<endl;// = 11 
	cout<<"----------------------------------------------------------------"<<endl;
    cout<<endl;cout<<endl;
	 
	//--
	char* ch = "12345678912"; // 11个字符	   
	cout<<"the size of ch = "<<sizeof(ch)<<endl; // = 4
	cout<<"the length of ch = "<<strlen(ch)<<endl;// = 11 
	cout<<"----------------------------------------------------------------"<<endl;
  	cout<<endl;cout<<endl;

	//--

	char a[]="12345678912"; // 11个字符	
    cout<<"the size of a = "<<sizeof(a)<<endl; // = 12,包括了字符串结束符'\0'
	cout<<"the length of a = "<<strlen(a)<<endl; //=11
	cout<<"----------------------------------------------------------------"<<endl;
  	cout<<endl;cout<<endl;

	//--
	char chr[12]="12345678912"; // 11个字符	 char chr[11]="12345678912"; 编译报错 array bounds overflow
	cout<<"the size of chr = "<<sizeof(chr)<<endl; // =12
	cout<<"the length of chr = "<<strlen(chr)<<endl; // =11
	cout<<"----------------------------------------------------------------"<<endl;
  	cout<<endl;cout<<endl;

	//--
	char chrr[100]="12345678912"; // 11个字符	
	cout<<"the size of chrr = "<<sizeof(chrr)<<endl; // =100
	cout<<"the length of chrr = "<<strlen(chrr)<<endl; // =11
	cout<<"----------------------------------------------------------------"<<endl;
  	cout<<endl;cout<<endl;

	//--
	char strr[8]={'a'};
	cout<<"the size of strr = "<<sizeof(strr)<<endl; // =8
	cout<<"the length of strr = "<<strlen(strr)<<endl; // =1
	cout<<"----------------------------------------------------------------"<<endl;
  	cout<<endl;cout<<endl;

	return 0;
}


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值