ChatGPT体验 AI绘画体验
c++二维字符数组怎么输入字符串
提问人:ssoj_A9230524 时间:2024-05-18 公开状态:

提问人:ssoj_A9230524 时间:2024-05-18 公开状态:


在C++中,二维字符数组通常用于存储字符串的集合,比如一个字符数组可以用来存储一个句子中的每个单词。下面是一个简单的例子,展示了如何使用二维字符数组来存储字符串,并且如何给它们赋值。
```cpp
#include <iostream>
#include <string> // 用于std::getline
#include <cstring> // 用于strcpy
int main() {
const int ROWS = 3; // 行数
const int COLS = 50; // 假设每个字符串的最大长度为49个字符,加上结束符'\0'
char words[ROWS][COLS]; // 创建一个二维字符数组
// 使用strcpy函数来复制字符串到二维数组中
strcpy(words[0], "Hello");
strcpy(words[1], "World");
strcpy(words[2], "C++");
// 打印二维数组中的字符串
for (int i = 0; i < ROWS; ++i) {
std::cout << words[i] << std::endl;
}
// 从用户输入读取字符串到二维数组
std::cout << "Enter " << ROWS << " words:" << std::endl;
for (int i = 0; i < ROWS; ++i) {
std::cin.getline(words[i], COLS); // 使用getline来读取一行文本
}
// 再次打印二维数组中的字符串
std::cout << "You entered:" << std::endl;
for (int i = 0; i < ROWS; ++i) {
std::cout << words[i] << std::endl;
}
return 0;
}
```
在这个例子中,我们首先声明了一个3行50列的二维字符数组`words`。然后我们使用`strcpy`函数从C字符串库中将字符串复制到数组中。接着我们打印出这些字符串。
之后,我们提示用户输入3个单词,并使用`std::cin.getline()`函数从标准输入读取整行文本,将其存储到二维数组中。最后,我们再次打印出用户输入的字符串。
请注意,`strcpy`函数需要包含`<cstring>`头文件,而`std::getline`需要包含`<string>`头文件。此外,`strcpy`函数需要确保目标数组有足够的空间来存储源字符串,否则可能会导致缓冲区溢出。在现代C++编程中,推荐使用更安全的`std::strcpy_s`或者`std::string`类来处理字符串,以避免这类问题。