我有一個很長的字符串變量,我想根據這些字搜索特定的單詞和限制文本。如何檢查標準字符串內的位置是否存在? (C++)
說我有以下文字:
「這個驚人的新的可佩戴的音頻解決方案採用嵌入到襯衫前面的工作揚聲器,可以播放音樂或適用於任何情況的音效這就像主演在你自己的電影裏「
和詞:」解決方案「,」電影「。
我想從(在搜索結果頁像谷歌)的大字符串。減去:
「......新的可佩戴的音頻解決方案特色 ...嵌入工作揚聲器」 和 」 ...就像在你自己的電影「
主演,我正在使用的代碼:
for (std::vector<string>::iterator it = words.begin(); it != words.end(); ++it)
{
int loc1 = (int)desc.find(*it, 0);
if(loc1 != string::npos)
{
while(desc.at(loc1-i) && i<=80)
{
i++;
from=loc1-i;
if(i==80) fromdots=true;
}
i=0;
while(desc.at(loc1+(int)(*it).size()+i) && i<=80)
{
i++;
to=loc1+(int)(*it).size()+i;
if(i==80) todots=true;
}
for(int i=from;i<=to;i++)
{
if(fromdots) mini+="...";
mini+=desc.at(i);
if(todots) mini+="...";
}
}
但desc.at(LOC 1-i)會導致OutOfRange異常......我不知道如何檢查該位置是否存在,而不會導致異常!
請幫忙!
什麼是瘋狂的縮進級別?請讓您的代碼更易於閱讀,這樣人們就不必如此努力工作來幫助您。 – 2010-04-12 04:18:54
你的意思是你想從文本中刪除任何給定的字符串? – wilhelmtell 2010-04-12 04:19:55
哦,對不起,我花了時間在格式化,但apparrently現在還不清楚..我的工作就可以了對不起;) – Youssef 2010-04-12 04:20:43