我正在寻找一种方法来准备用作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