2010-11-26 52 views
0

我正在處理這段代碼,並且感到困惑。 如何獲得只有第10個元素和以上才被複制到緩衝區中?如何只複製字符串數組中的確切索引元素?

例如,我有這個字符串「http://www.google.com」。我不想要「http:// www。」部分被複制到我的緩衝區中。

char testDest[256]; 
    char *p= _com_util::ConvertBSTRToString(URL->bstrVal); 

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

什麼緩衝區?一個char *`? – 2010-11-26 03:06:38

+0

我更新我的問題。 – karikari 2010-11-26 03:09:30

回答

5

你不應該通過計數來做到這一點。如果下一個地址是https://www,該怎麼辦?或者如果鏈接甚至沒有www在裏面?對於這樣的事情,你最好的朋友是「模式匹配」。

但如果你真的知道你在做什麼,只是讓你的for循環在10開始的零代替:

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

此外,這是不是真的C++中,你在做什麼。 C++比使用char緩衝區有更好的選擇。只是說:)