从程序清单4.2中可以学到什么呢?首先,sizeof操作符指出整个数组的长度:15字节,但strlen()函
数返回的是存储在数组中的字符串的长度,而不是数组本身的长度。另外,strlen()只计算可见的字符,而
不把空字符计算在内。因此,对于Basicman,返回的值为8,而不是9。如果cosmic是字符串,则要存储
该字符串,数组的长度不能短于strlen(cosmic)+1。
由于 name1和name2 是数组,所以可以用索引来访问数组中各个字符。例如,该程序使用 name1[0]
找到数组的第一个字符。另外,该程序将name2[3]设置为空字符。这使得字符串在第3个字符后即结束,
虽然数组中还有其他的字符(参
- //strings.cpp --storing strings in an array
- #include
- #include
//for the strlen()function - int main()
- {
- using namespace std;
- const int Size=15;
- char name1[Size];
- char name2[Size]="C++owboy";
- cout<<"Howdy!I'm"<
- cout<<"!What's your name?\n";
- cin>>name1;
- cout<<"Well,"<
"your name has"; - cout<<strlen(name1)<<"letters and is stored\n";
- cout<<"in an array of"<<sizeof(name1)<<"bytes.\n";
- cout<<"Your initial is "<
0]<<".\n"; - name2[3]='\0';
- cout<<"Here are the first 3characters of my name:";
- cout<
"\n"; - return 0;
- }
见图4.3)。