试图返回char数组

时间:2013-11-11 18:15:44

标签: c++ arrays char

我意识到我接近这种方式是错误的,但我不知道为什么。 我对C ++ /编程很新。 我希望我的程序执行以下操作。 如果我cin“setwanted joe”我希望它将joe存储到char数组中。我有它所以我可以成功分离和cout乔,但我不能从函数返回char数组。 这是我的示例代码。

char * GETNAME (char *searchinput, char*searchtext)
{
    char returnname[64];
    int starter=0;
    for(;;)
    {
        if (*searchinput == *searchtext)
        {
            searchinput++;
            searchtext++;

        }
        if (*searchinput == ' ')
        {
            searchinput++;
            searchtext++;
        }
        if (*searchinput!='\0' && *searchinput!= *searchtext && *searchinput != ' ')
        {
            returnname[starter] = *searchinput;
            starter++;
            searchinput++;
            searchtext++;
        }
        if (*searchinput=='\0')
        {
            returnname[starter]='\0';
            cout << "Char Array to Return: " << returnname << endl;
            return returnname;
        }
    }
}

上面是我尝试从char数组返回名称的函数。 这是我用来调用函数的代码。

char Recv[256];
cin >> Recv;
char * wantedname = new char[64];
wantedname = GETNAME(Recv,"setwanted");
cout << "Returned Name: " << wantedname << endl;

感谢您的阅读/耐心,我知道这很麻烦。

1 个答案:

答案 0 :(得分:0)

使用std::arraystd::vectorstd::string(如果是字符数组)可以轻松返回项目数组。由于返回指向本地临时对象的指针,您的代码将调用未定义的行为。我更喜欢这个

std::string GETNAME(const std::string &searchinput,const std::string &searchtext)
{
    std::string returnname;

    ...

    return returnname;
}