gpt4 book ai didi

c++ - 将字符串拆分为字符串 vector 时出现无效转换错误

转载 作者:行者123 更新时间:2023-11-30 05:38:35 25 4
gpt4 key购买 nike

我正在尝试从用户那里获取一个字符串输入,在每个空白处将其拆分为单独的字符串,并将其存储在一个 vector 中。我正在使用 this 中的第一个代码片段发布(这是问题的第二个答案)对字符串进行拆分。这些是我在编译时遇到的错误:

stringTest.cpp:在函数“int main()”中:stringTest.cpp:23:30: 错误:从‘const char*’到‘char’的无效转换[-fpermissive] 分割(输入,“”,分割输入); ^

stringTest.cpp:8:17: 错误:正在初始化“std::vector >& split(std::string&, char, std::vector >&)”的参数 2 [-fpermissive] vector &split(string &s, char delim, vector &elems) {

我知道第一个错误在说什么,但无法弄清楚是什么导致了问题,我也不知道第二个错误是什么意思。

这是我写的代码(main 之外的所有内容都来自链接的帖子):

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

using namespace std;

vector<string> &split(string &s, char delim, vector<string> &elems) {
stringstream ss(s);
string item;
while (getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}

int main(){

string input;
cin>>input;
vector<string> splitInput;

split(input, " ", splitInput);

for(int i = 0; i < splitInput.size(); i++){
cout<< splitInput.at(i) << endl;
}

return 0;
}

最佳答案

改变这个

split(input, " ", splitInput);

对此

split(input, ' ', splitInput);

因为函数的原型(prototype)是:

vector<string> &split(string &s, char delim, vector<string> &elems) ; ,它要求将 char 作为第二个参数,而不是字符串。

" " 是一个 const char[2] 类型的字符串文字,而 ' ' 是一个 char 类型的字符。

你也可以查看这个问题:What is the type of string literals in C and C++?

关于c++ - 将字符串拆分为字符串 vector 时出现无效转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684046/

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