簡體   English   中英

我怎樣才能使 function 接受一個字符串並返回一個字符數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM