c++字符数组
时间: 2025-04-28 08:21:17 浏览: 30
### C++ 中字符数组的使用方法
在 C++ 中,字符数组用于存储多个字符序列。字符数组可以表示字符串,并且可以通过多种方式定义和操作。
#### 定义字符数组
字符数组可以用两种主要的方式声明:
- **指定大小并赋初值**
```cpp
char str1[] = "hello";
```
- **仅指定大小而不立即赋值**
```cpp
char str2[6]; // 需要额外的空间来容纳终止符 '\0'
strcpy(str2, "world"); // 使用标准库函数复制字符串到数组中
```
注意,在上述例子中 `str1` 的实际分配空间为 6 而不是 5,因为编译器会自动加上一个空字符 `\0` 来标记字符串结束[^1]。
#### 初始化字符数组
当初始化字符数组时,如果提供了初始值列表,则不需要显式指明数组尺寸;但如果未提供初始值或者只部分初始化,则必须给出确切的尺寸。
```cpp
char greeting[] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 显式的包含'\0'作为结尾标志
// 或者更简洁的形式如下:
char message[] = "Good day!";
```
对于多维字符数组(即二维或多维),每一维度都应有明确的界限说明其容量。
#### 输入输出字符数组
读取用户输入至字符数组通常借助于 `cin.getline()` 函数或通过循环逐个字符读入。而打印整个字符数组则可以直接利用流插入运算符 `<<` 输出直到遇到第一个零字节为止。
```cpp
#include <iostream>
using namespace std;
int main() {
const int SIZE = 80;
char name[SIZE];
cout << "Enter your full name: ";
cin.getline(name, SIZE);
cout << "Your name is " << name << "." << endl;
}
```
为了安全起见,建议总是给定足够的缓冲区以防溢出风险,并考虑采用现代替代方案如 `std::string` 类型处理文本数据。
#### 计算字符数组长度
获取字符数组的有效长度可通过遍历直至遇见终结符 `\0` 实现,也可以调用内置宏或标准库中的辅助工具完成此工作。
```cpp
size_t length(const char* s) {
size_t count = 0;
while (*s++) ++count;
return count;
}
// 或者直接应用 strlen()
cout << "Length of string: " << strlen(message) << endl;
```
以上就是关于 C++ 字符数组的一些基本概念及其常见用途介绍[^2]。
阅读全文
相关推荐

















