C++:从函数、返回类型或引用中使用和返回字符数组?

标签 c++ arrays pointers string

C++:从函数、返回类型或引用中使用和返回字符数组? 我正在尝试在函数外部创建一个空终止字符串,然后运行一个函数,该函数将为其分配一些数据。例如,char abc [80] 是在 main 中创建的。然后运行 ​​input(),它将用户输入返回给 abc。我认为执行此操作的两种明显方法是:

1. 使输入函数将输入返回到 main 中的一个变量,类似于:

char input ()
{
    char input [80];
    getline(cin, choice);
    return input;
}

int main ()
{
    char choice [80];
    choice = input ();
    ...
}

2。 将字符数组传递给输入函数 my reference,然后从那里将数据放入其中:

...
void input (&variable)
{
    getline(*variable, cin);
    return;
}
int main ()
{
    char choice [80];
    char* pointer;
    input (pointer);
    ...
}

但是,我无法使用这两种方式中的任何一种。那么,我做错了什么,我该如何解决呢?

最佳答案

只需使用标准字符串。使用恒定宽度数组的疯狂行为至少导致我工作的公司花费了 4 数十万美元的开发时间。您问题的正确答案可能会让您感到沮丧,但实际上是“不要那样做!!!”

关于C++:从函数、返回类型或引用中使用和返回字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3579604/

相关文章:

arrays - 如何快速从数组中选择一个随机十(字符串)

c - 在 C 循环中使用字符数组引用

C++:使用带有排序函数的完全限定名称 - 行为不一致

c++ - 无穷大不是 constexpr

jQuery 'get' 没有从 C++ FastCGI 应用程序(nginx 网络服务器)收到正确的答案

c++ - 对数字范围使用 boost

c++ - C++ 生成器中的 "[ilink32] Fatal: Out of memory"

python - 从 2D numpy 数组的 numpy 数组高效创建 block numpy 数组

c++ - 将 char[][] 转换为 char**

c - 如何正确传递这个c字符串数组