首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建接受字符串并返回字符数组函数

如何创建接受字符串并返回字符数组函数
EN

Stack Overflow用户
提问于 2020-09-22 19:33:03
回答 1查看 82关注 0票数 0

我想返回一个字符数组,下面是代码

代码语言:javascript
复制
char convert(string user){
    int n = user.length();
    char char_array[n+1];
    strcpy(char_array,user.c_str()) ;
    return char_array;
}
EN

回答 1

Stack Overflow用户

发布于 2020-09-22 19:50:38

不能从函数返回数组。您可以返回指向此类数组的第一个元素的指针。好消息是:这个函数已经存在了。它就是std::string::c_str方法。

代码语言:javascript
复制
void foo(const char*);     // <- legacy, cannot modify, must pass c-string

std::string x{"Hello World"};
foo( x.c_str() );

在您的代码中,此char char_array[n+1];不是有效的标准C++。详情请看这里:Why aren't variable-length arrays part of the C++ standard?

此外,您尝试返回一个指向本地数组的指针。一旦函数结束,数组的生存期就已经过去,指针就没有用处了。更多信息请点击这里:Can a local variable's memory be accessed outside its scope?

最后(也是最不重要的),当您需要一个char时,您声明函数返回一个char*。然而,由于最后一点的原因,修复它并不会真正有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64008868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档