gpt4 book ai didi

c++ - 将字符从一个字符串简单分配到另一个字符串不起作用

转载 作者:行者123 更新时间:2023-11-30 00:42:43 25 4
gpt4 key购买 nike

我正在尝试使用函数将字符从一个字符串分配给另一个字符串,但出现错误。

"terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::at: __n (which is 0) >= this->size() (which is 0)"

#include <iostream>
#include <string>
#include <vector>

void split (std::string line)
{
std::string::size_type leng=0;
leng=line.length();
std::string k;

for (long unsigned int i=0;i<leng; i++)
{
k.at(i)=line.at(i);
}

std::cout<<k;
}

int main()
{
std::string line = "";
std::cout << "Enter a string: ";
getline(std::cin, line);
split(line);
}

最佳答案

当您初始化k 时,它是一个空字符串。所以 k.at(i) 将超出错误消息所说的范围。

有很多方法可以复制一个字符串,你可以使用像 std::string k(line);k.assign(line) 这样的构造函数或你可以使用 resize()在循环之前调整 k 的大小。

关于c++ - 将字符从一个字符串简单分配到另一个字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58511886/

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