这里详细讲解一下C++中的字符数组、字符数组指针和string类。
字符数组
字符数组是一种可以存储一串字符的连续存储空间,也就是C字符串。在C++中可以使用字符数组存储字符串,例如:
char str[100]; // 定义一个字符数组,最多可以存储99个字符
cin >> str; // 从标准输入读入一个字符串
cout << str << endl; // 将字符串输出到标准输出
上面的代码定义了一个大小为100的字符数组,然后使用cin从标准输入中读入一个字符串到这个数组中,并将字符串输出到标准输出。需要注意的是,使用字符数组存储字符串时要保证数组的大小足够存储字符串,否则会出现溢出的情况。
字符数组指针
字符数组指针是一个指向字符数组的指针,本质上也是一个指针变量。在C++中可以使用指针变量操作字符数组,例如:
char str[100]; // 定义一个字符数组
char *p = str; // 定义一个指向字符数组的指针
cin >> p; // 从标准输入读入一个字符串到p指向的字符数组中
cout << p << endl; // 输出p指向的字符数组
上面的代码定义了一个大小为100的字符数组,并定义了一个指向这个数组的指针p,然后使用cin从标准输入中读入一个字符串到字符数组中。需要注意的是,使用指针变量操作字符数组时要保证指针指向的内存区域合法,否则会导致访问非法内存的错误。
string类
string类是C++ STL中用于字符串操作的类,它提供了丰富的字符串操作方法,例如:
string str; // 定义一个空字符串
getline(cin, str); // 从标准输入读入一行字符串到str中
cout << str << endl; // 输出字符串
上面的代码定义了一个空字符串,并使用getline方法从标准输入中读入一行字符串到这个字符串中,最后将字符串输出到标准输出。需要注意的是,使用string类操作字符串时不需要考虑字符串的长度问题,因为string类内部维护了字符串的长度。
示例说明
下面是两个关于字符数组和string类的示例:
示例1:字符数组
#include <iostream>
using namespace std;
int main() {
char str[100];
cin >> str;
cout << str << endl;
return 0;
}
上面的代码定义了一个大小为100的字符数组,然后使用cin从标准输入中读入一个字符串到这个数组中,并将字符串输出到标准输出。如果输入的字符串长度大于99,则会出现溢出的情况。
示例2:string类
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str);
cout << str << endl;
return 0;
}
上面的代码定义了一个空字符串,然后使用getline方法从标准输入中读入一行字符串到这个字符串中,最后将字符串输出到标准输出。使用string类操作字符串时不需要考虑字符串的长度问题,因为string类内部维护了字符串的长度。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++字符数组、字符数组指针和string类 - Python技术站