我正在尋找一種方法來準備用作URL的字符串。C++ - 用%20替換空格
代碼的基礎知識是你輸入你正在尋找的東西,並打開瀏覽器輸入的內容。我正在學習C++,所以這是一個學習程序。請儘可能具體地說明我是C++的新手。
這裏是我想要做的事:
cin >> s_input;
transform(s_input.begin(), s_input.end(), s_input.begin(), tolower);
s_input = "start http://website.com/" + s_input + "/0/7/0";
system(s_input.c_str());
但我試圖取代用戶用「%20」進入所有空間。我已經找到了這種方法,但它一次只能處理一個字母,而我需要使用完整的字符串而不是字符數組。這裏是我試過的方法:
cin >> s_input;
transform(s_input.begin(), s_input.end(), s_input.begin(), tolower);
using std::string;
using std::cout;
using std::endl;
using std::replace;
replace(s_input.begin(), s_input.end(), ' ', '%20');
s_input = "start http://website.com/" + s_input + "/0/7/0";
system(s_input.c_str());
感謝您的幫助!
你實際上試圖做的是轉義字符串中的所有特殊字符。空間不是URL中唯一不合法的字符。 – Wug 2012-07-18 03:59:58
有關字符串的基本「查找和替換」,請參閱[此問題](http://stackoverflow.com/q/3418231/501250)。但是您應該考慮使用第三方庫來正確地對字符串進行URI編碼。 – cdhowie 2012-07-18 04:01:27
@wug你是對的。但這只是一個學習計劃,我只能一次完成一步。我將是唯一使用這個.. – alexander7567 2012-07-18 04:01:57