函數採用char const *
只寫入一次接受一個字符串,而不是一個字符串數組。要將std::string
傳遞給這樣的函數,只需使用your_string.c_str()
作爲參數調用該函數即可。
編輯:對於需要字符串數組,顯而易見的選擇(至少對我來說)是寫一個最小的前端,讓一個功能你傳遞一個vector<std::string>
:
// The pre-existing function we want to call.
void func(char const *strings[], size_t num) {
for (size_t i=0;i<num; i++)
std::cout << strings[i] << "\n";
}
// our overload that takes a vector<string>:
void func(std::vector<std::string> const &strings) {
std::vector<char const *> proxies(strings.size());
for (int i=0; i<proxies.size(); i++)
proxies[i] = strings[i].c_str();
func(&proxies[0], proxies.size());
}
索引是以C++爲基礎的。所以你的意思是'string_array [0]'和'string_array [1]' – 2010-07-08 19:57:06
是的,當然,謝謝 – hoxnox 2010-07-08 20:11:39
函數如何使用const char * cstring_array []? – 2010-07-08 20:28:03