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

时间:2010-11-26 03:05:49

标签: 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];   
  }

1 个答案:

答案 0 :(得分:5)

你不应该通过计算来做到这一点。如果下一个地址是https://www怎么办?或者如果链接中甚至没有www?对于这样的事情,你最好的朋友是“模式匹配”。

但如果你真的知道你在做什么,那就让你的for循环从10开始而不是零:

for (int i = 9; i <= strlen(p); i++)
{
    testDest[i-9] = p[i];
}

另外,这不是C ++你正在做的事情。与使用char缓冲区相比,C ++有更好的选择。只是说:)