char类型的数组称为字符数组,用来存储字符串。字符串终止字符表明字符串已经结束,该字符由终止字符'\0'定义,占用一个字节。
sizeof 是一个运算符,返回一个对象或者类型所占的内存字节数,应用于数组名称本身时,返回整个数组占用的字节数量。
strlen 是一个函数,返回C字符串的长度,C字符串的长度是从字符串开始位置到字符串终止字符的长度(不包括终止字符)。
#include <iostream>
#include <cstring>
using namespace std;
const int MAX = 80;
const int TOTAL = 5;
int main(){
char arr1[] = "12345";
char arr2[10] = "12345";
char *str = "12345";
cout << "sizeof(arr1) = " << sizeof(arr1) << "strlen(arr1) = " << strlen(arr1) << "\n";
cout << "sizeof(arr2) = " << sizeof(arr2) << "strlen(arr2) = " << strlen(arr2) << "\n";
cout << "sizeof(str) = " << sizeof(str) << "strlen(str) = " << strlen(str) << "\n\n";
char name[TOTAL][MAX];
for (int i = 0; i < TOTAL; i++)
cin.getline(name[i], MAX, '\n');
cout << "\n\n";
for (int i = 0; i < TOTAL; i++)
cout << name[i] << endl;
system("pause");
return 0;
}
因此输出结果
sizeof(arr1) = 6 strlen(arr1) = 5
sizeof(arr2) = 10 strlen(arr2) = 5
sizeof(str) = 4 strlen(str) = 5
getline()函数从cin中读取字符,getline()函数属于cin对象之一。
name[i] 从cin读取的字符存储在该数组中
MAX 要读取的字符的最大数量,当读取了指定的最大数量的字符数后,停止输入
'\n' 结束输入过程的字符。该字符在首次出现时就将结束输入过程