如何解决如何使函数接受字符串并返回char数组
我想返回一个字符数组,这是代码
char convert(string user){
int n = user.length();
char char_array[n+1];
strcpy(char_array,user.c_str()) ;
return char_array;
}
解决方法
您不能从函数返回数组。您可以返回一个指向该数组第一个元素的指针。好消息是:该功能已经存在。这是std::string::c_str
方法。
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*
。但是,由于最后一点,修复该问题将无济于事。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。