c ++程序中的未知错误

-2 c++

我有一个c ++程序,根据用户输入的内容打开一个url.

这是代码:

#include <iostream>
#include <string>
using namespace std;

int main(){
    int i = 1;
    string google = "https://www.google.com/search?q=";
    string input;
    getline(cin, input);
    string changeSpace(string input)
    {
        for (int i = 0; i < text.length(); i++)
        {
            if (text[i] == ' ')
                text[i] = '+';
        }
        return text;
    }
    input = changeSpace(input);
    cout << input << endl;
    string url = string(google + input);
    system(string("start " + url).c_str());
    cout << url << endl;
}
Run Code Online (Sandbox Code Playgroud)

错误在这里:

string changeSpace(string input)
{
Run Code Online (Sandbox Code Playgroud)

在括号中它表示它预期";"

而且我不知道为什么ocurrs会出错,这可能是一个简单的错误,但我不知道.

请帮我.

Bia*_*sta 5

你的问题是因为你试图在另一个函数中定义一个函数.你不能这样做.

C++ 11开始,你可以做的最相似的事就是使用lambda.

int main() {
    // stuff...

    auto changeSpace = [] (string text) -> string
    {
        for (int i = 0; i < text.length(); i++)
        {
            if (text[i] == ' ')
                text[i] = '+';
        }
        return text;
    }

    input = changeSpace(input);

    // stuff...
}
Run Code Online (Sandbox Code Playgroud)

但我敢打赌,这不是代码中唯一的错误.