我正在研究这段代码,感到很困惑.. 如何仅将第10个元素及以上元素复制到缓冲区中?
例如,我有这个字符串“http://www.google.com”。我不想要“http:// www。”要在我的testDest
缓冲区内复制的部分。
char testDest[256];
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
for (int i = 0; i <= strlen(p); i++)
{
testDest[i] = p[i];
}
答案 0 :(得分:5)
你不应该通过计算来做到这一点。如果下一个地址是https://www怎么办?或者如果链接中甚至没有www?对于这样的事情,你最好的朋友是“模式匹配”。
但如果你真的知道你在做什么,那就让你的for循环从10开始而不是零:
for (int i = 9; i <= strlen(p); i++)
{
testDest[i-9] = p[i];
}
另外,这不是C ++你正在做的事情。与使用char缓冲区相比,C ++有更好的选择。只是说:)