编写一个程序,将从键盘输入的n个字符串保存在一个一维数组A中。在输入字符串之前,先输入n的值。要求,数组A需要动态申请空间,程序运行结束前再释放掉。
时间: 2024-09-27 19:05:43 浏览: 43
C语言数组:C语言数组定义、二维数组、动态数组、字符串数组_C语言中文网1
在C++中,你可以使用`std::vector`这种动态数组容器来实现这个需求。首先,用户会输入字符串的数量n,然后你创建一个大小为n的`vector`来存储字符串。当用户输入完所有字符串后,可以逐个添加到`vector`中。最后,记得在程序结束前释放内存,即删除`vector`。以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
int main() {
int n;
std::cout << "请输入字符串的数量n: ";
std::cin >> n;
// 动态分配一个能存放n个字符串的vector
std::vector<std::string> stringArray(n);
// 遍历并获取每个字符串,存入vector
for (size_t i = 0; i < n; ++i) {
std::string str;
std::cout << "请输入第" << (i + 1) << "个字符串: ";
getline(std::cin, str); // 使用getline处理换行符
stringArray[i] = str;
}
// 现在字符串已存入vector,后续可以操作它们
// 在这里进行其他处理...
// 程序结束前,释放vector内存
stringArray.clear(); // 清空vector,但这不会立即释放内存
delete[] stringArray.data(); // 如果想手动释放,需用delete[],注意这仅适用于原始类型(如字符数组)
return 0;
}
```
阅读全文