我正在研究这段代码,并且感到困惑.如何只将第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];
}
Run Code Online (Sandbox Code Playgroud)
你不应该通过计算来做到这一点.如果下一个地址是https://开头WWW.或者如果链接中甚至没有www?对于这样的事情,你最好的朋友是"模式匹配".
但如果你真的知道自己在做什么,那就让你的for循环从10开始而不是零:
for (int i = 9; i <= strlen(p); i++)
{
testDest[i-9] = p[i];
}
Run Code Online (Sandbox Code Playgroud)
而且,这不是C++你正在做的事情.与使用char缓冲区相比,C++有更好的选择.只是说:)