如何只从字符串数组中复制精确的索引元素?

kar*_*ari 0 c++

我正在研究这段代码,并且感到困惑.如何只将第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)

Lag*_*aer 5

你不应该通过计算来做到这一点.如果下一个地址是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++有更好的选择.只是说:)