c++统计字符串字符数的程序

来源:百度知道 编辑:UC知道 时间:2024/05/18 17:09:17
#include <iostream>
using namespace std; int main ()
{ char str[30]="c++ programming Today";
int count (0),i(0);
while (str[i]!='\0')
{
count++;i++;}
cout<<count<<endl;
return 0;}

在str[30]中 "c++"后面出现了空格,程序就应该终止了啊?但为什么输出的还是str所有字符串的长度 21 ??

定义没弄明白,\0是string类型中的结束符,称为“空”,在内存中是占一个存储空间的,而空格实际上是字符“ ”(引号中间是空格)。也可以强制转换成ASCII码。具体数值可以直接去查找ASCII码表。
可以改成while(str!=' ')

\0不是空格是结束符。所以不会结束
如果改成while (str[i]!=' ')
就会在空格处结束。
注意:''之间有一个空格

'\0'是字符串结束符标志,在Today的后面!