gpt4 book ai didi

c++ - 不使用 C++ 字符串的输入字符串

转载 作者:太空狗 更新时间:2023-10-29 20:26:50 25 4
gpt4 key购买 nike

我被要求在不使用 C++ string 的情况下从输入中获取一个字符串(可以是任意大小)。我想到了为 char 数组动态分配空间,并从 SO 本身获得了以下实现。但我不确定这是否是一个好的实现。有没有更好的实现不需要您输入名称中的元素数量?

#include<iostream>
int main()
{
int size = 0;
std::cout << "Enter the size of the dynamic array in bytes : ";
std::cin >> size;
char *ptr = new char[size];

for(int i = 0; i < size;i++)
std::cin >> *(ptr+i);
}

最佳答案

可能违反规则(或者我不明白这个问题,但是......)。不管怎样,当有人用 C++ 说“动态数组”时,我自然会想到 vector 。

#include <iostream>
#include <vector>
#include <iterator>
using namespace std;

int main()
{
vector<char> vec;
copy(istreambuf_iterator<char>(cin),
istreambuf_iterator<char>(),
back_inserter(vec));
vec.push_back(0);
cout << vec.data() << endl;
return 0;
}

想想就可以了。


精简版

#include <iostream>
#include <vector>
#include <iterator>
using namespace std;

int main()
{
vector<char> vec {istreambuf_iterator<char>(cin),
istreambuf_iterator<char>()} ;
vec.push_back(0);
cout << vec.data() << endl;
return 0;
}

关于c++ - 不使用 C++ 字符串的输入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com