我見過很多類似的問題,但似乎沒有任何工作可以用於我的代碼,我想我忽略了一些基本的東西,也許你可以提供幫助。將std :: string轉換爲char數組
現在我正在構造一個字符串作爲請求發送到winsock發送函數,它需要發送一個char []。我需要將我的std :: string轉換爲char數組(char [])。
目前,這是工作的要求:
char request [] = "GET /gwc/cgi-bin/fc?client=udayton0.1&hostfile=1HTTP/1.0\nHost:www.gofoxy.net\n\n";
但我需要改變,以相同的數據結構的請求的字符串。
我感謝任何幫助!
編輯:
我可以將字符串轉換爲char *,但我怎麼可以用它來獲得一個 字符數組?我希望我不會讓它更混亂。這裏有 兩家生產焦炭明星的時候我跑不與發送 要求兼容的嘗試:
//convert request into a char[]
//char *req_ch = new char[req_str.size()+1];
//hostCh[req_str.size()] = 0;
//memcpy(req_ch, req_str.c_str(), req_str.size());
//char * req = new char[req_str.size() +1];
//std::copy(req_str.begin(), req_str.end(), req);
//req[req_str.size()] = '\0';
是不是'c_str()'你在找什麼,它返回一個指針? –
那麼一個非const字符數組的字符串?我會用一個用迭代器構造的vector來使用'vector :: data()'。 – chris
@gosly,一個數組在傳入函數時會衰減爲一個指針,所以傳遞一個指針並不重要。 – chris