字符串结束字符的整理

今天上课老师提问了个问题,关于stelen函数求字符串长度的问题。以前一直对这样的问题存在困扰,我想今天应该解决了。

下面通过一个函数,来说明我的问题.

int main(int argc,char* argv[])
{
 char* a = "abcdef";     // 定义成字符指针
 cout << sizeof(a) << endl;  // 注意sizeof后面跟的永远都是类型,因此指针类型的大小为4个;
 cout << strlen(a) << endl; // 测试a字符指针中所包含的字符的个数。为6个,注意这里不会包括\0这个结束符。
 char b[9] = {"abcdef"};
 cout << sizeof(b) << endl;   // 同样这里的b的大小为9,因为sizeof只看类型。
 cout << strlen(b) << endl;   // strlen只看该空间中到底有多少个字符。
 b[9] = "abcdefgh";                 // 这里要注意了,b[9]中要存放的实际字符的个数只能是8个。因为最后有一个结束符。
 cout << b << " ";  
 return 0;

 

 

总结如下,所有涉及到长度问题时,根本与结束符没有关系。只是在实际存储中会出现这样的问题。依次,以后要记住了。求大小的情况,要不能出现错误的问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值