- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从用户那里获取一个字符串输入,在每个空白处将其拆分为单独的字符串,并将其存储在一个 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/
我是一名优秀的程序员,十分优秀!