我正在编写这段代码,但感到困惑...... 如何只获取第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/