📅  最后修改于: 2023-12-03 14:59:48.876000             🧑  作者: Mango
在 C++ 中,我们可以使用指针来动态地分配内存并存储从键盘获取的字符串。下面是一个演示如何做到这一点的示例代码:
#include <iostream>
int main() {
// 声明一个指针变量
char* str;
// 读取字符串长度
std::cout << "请输入字符串的长度:";
int length;
std::cin >> length;
// 分配足够的内存来存储字符串
str = new char[length + 1]; // 额外的一个字节用于存储字符串结束符 '\0'
// 读取字符串
std::cout << "请输入字符串:";
std::cin.ignore(); // 忽略之前的换行符
std::cin.getline(str, length + 1);
// 输出字符串
std::cout << "您输入的字符串是:" << str << std::endl;
// 释放内存
delete[] str;
return 0;
}
在以上示例代码中,我们首先声明了一个字符指针 str
,它将用于存储从键盘获取的字符串。然后,我们读取了字符串的长度,并根据该长度动态地分配了足够的内存(new
运算符)。接着,我们使用 getline
函数从键盘读取了字符串,并将其存储到了 str
中。最后,我们输出了用户输入的字符串,并通过 delete[]
运算符释放了为该字符串分配的内存。
请注意,我们在分配内存时额外添加了一个字节,用于存储字符串的结束符 \0
。这是因为 C++ 中的字符串是以零结尾的字符数组。
希望这个例子能对你有所帮助!