【发布时间】:2011-08-29 09:54:27
【问题描述】:
我认为这将是一件相对简单的事情:在“www.google.ie”后面加上一个斜杠,并在它前面加上“http://”,从而得到一个值为“http”的字符串://www.google.ie/”。不,这不是家庭作业……(我知道)
现在这是我的代码:
std::string line=split1[0]; //split1[0] is "Host: www.google.ie"
std::vector<std::string> split2;
boost::split(split2,line,boost::is_any_of(" "));
boost::erase_all(split2[1],"\n");
std::cout<<"split2[1]:"<<split2[1]<<std::endl; //outputs www.google.ie ok
fURL="http://"+split2[1]+"/";
//fURL="http://www.google.ie/"; //this is what I want fURL to be!
std::cout<<std::endl; //just for some testing
std::cout<<std::endl;
std::cout<<std::endl;
std::cout<<std::endl;
std::cout<<std::endl;
std::cout<<"fURL:"<<fURL<<std::endl; //should output: http://www.google.ie/?
这是我奇怪的输出:
split2[1]:www.google.ie /URL:http://www.google.ie
我不知道“/URL:”中的“/”是从哪里来的。就好像我指定的尾部斜线以某种方式被附加到前面。我真的不明白这怎么可能......
在 Linux Ubuntu 上使用 g++ 4.5.2。
非常感谢任何见解。
非常感谢,
【问题讨论】:
-
std::cout << "fURL: http://" << split2[1] << "/" << std::endl;的输出是什么? -
输出为:"/URL: google.ie" ;(
-
对我来说没问题:ideone.com/M8H1H,您的代码中还有其他问题导致了这种情况……例如,
fURL的类型是什么? -
@Nim。唔。很有意思。 (ideone.com 很酷)。肯定是有别的事情发生了……fURL的类型是“std::string”,在对应的头文件中声明。
-
您是否尝试过使用仅您发布的部分制作程序并验证错误确实存在?之后还要输出吗?