fud*_*din 8 c++ string pointers
在C++中我有这个程序:
#include <iostream>
using namespace std;
int main(){
string expression_input;
cout << "User Input: " << endl;
getline(cin, expression_input);
expression_input.insert(0, '('); //error happens here.
expression_input.append(')');
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
prog.cpp:15: error: invalid conversion from ‘char’ to ‘const char*’
prog.cpp:15: error: initializing argument 2 of
‘std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT,
_Traits, _Alloc>::insert(typename _Alloc::rebind<_CharT>::other::size_type,
const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>,
_Alloc = std::allocator<char>]’
Run Code Online (Sandbox Code Playgroud)
我要char转到const char*哪里?我不能在字符串的第0位插入一个字符吗?
Pau*_*l R 10
错误消息告诉您需要知道的所有内容 - 您正在尝试传递a 所需的char参数const char *.
你只需要改变:
expression_input.insert(0,'(');
expression_input.append(')');
Run Code Online (Sandbox Code Playgroud)
至:
expression_input.insert(0,"(");
expression_input.append(")");
Run Code Online (Sandbox Code Playgroud)
没有std::string::insert只需要一个位置和一个字符的。你想要的是insert(0, 1, '('),它在位置 0 插入 1 个字符。
这同样适用于std::string::append:append(1, ')')