c++ - 如何仅从字符串数组中复制确切的索引元素?

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

最佳答案

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

但是如果您真的知道自己在做什么,只需让您的 for 循环从 10 而不是 0 开始:

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

此外,您所做的并不是真正的 C++。 C++ 有比使用字符缓冲区更好的选择。只是说:)

关于c++ - 如何仅从字符串数组中复制确切的索引元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282267/

相关文章:

在自动 var 销毁之前或之后创建的 C++ 返回值?

c++ - MSVC++ 警告标志

c++ - 在 Rust FFI 中将数组从 C++ 返回到 Rust

c++ - 我将如何在 C++03 中可移植地实现对齐的堆栈存储?

c++ - 是否有 std::equal 的安全替代方案?

c++ - 是否可以使用 using for 函数?

c++ - C++错误“左操作数必须为l值”

c++ - 初始化具有预留容量的嵌套 vector 的子 vector

c++ - 处理 QListWidget 点击和滚动

c++ - 为什么优先级队列实现为二叉堆?