[英]How can I make my strchr function take both 'const char' and 'char' arrays as first parameter?
[英]How can I make function that take a string and return a char array
我想返回一個字符數組,這是代碼
char convert(string user){
int n = user.length();
char char_array[n+1];
strcpy(char_array,user.c_str()) ;
return char_array;
}
您不能從 function 返回數組。您可以返回指向此類數組第一個元素的指針。 好消息是:function 已經存在。 它是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 variable-length arrays part of the C++ standard?
此外,您試圖返回一個指向本地數組的指針。 一旦 function 結束,arrays 的生命周期就過去了,指針就沒有用了。 更多相關信息: Can a local variable's memory be accessed outside its scope?
最后(也是最不重要的)你聲明 function 在你想要一個char*
時返回一個char
。 但是,由於最后一點,修復它並沒有真正幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.