目前我正在使用C++環境進行非常基本的遊戲。這個遊戲曾經是一個學校項目,但現在我已經完成了該編程課程,我想擴展我的技能,並在這個舊任務上增加一些興趣。字符串提取
我已經做了很多我很滿意的改變。我已將所有數據集中到文件夾層次結構中,並且已經獲得了讀取這些位置的代碼。
然而,我的問題源於一直困擾着我的一個非常根本的缺陷。
爲了訪問,我用我已經使用了代碼的圖像數據:
string imageLocation = "..\\DATA\\Images\\";
string bowImage = imageLocation + "bow.png";
的問題是,當玩家在遊戲鍵盤拿起一個項目我的代碼應該使用的代碼:
hud.addLine("You picked up a " + (*itt)->name() + "!");
打印到命令行,「你拿起弓!」。但相反,它顯示「你拿起.. \ DATA \ Images \!」。
我集中我的數據之前我用:
name_(item_name.substr(0, item_name.find('.')))
在我的項目類的構造函數的項目名稱印章,只是像弓或蠟燭。在我改變了我的數據結構之後,我意識到我將不得不改變我如何將這個名字切成同樣簡單的'弓'或'蠟燭'。
我已經改變了上面的代碼,以反映我在數據結構的變化是:
name_(item_name.substr(item_name.find("..\\DATA\\Images\\"), item_name.find(".png")))
但不幸的是,因爲我先前提到的這個代碼改變是不工作,以及我計劃的那樣。
所以,現在我已經給出了真正的漫長的介紹我的問題是什麼,這是我的問題。
如何提取兩個部分之間不需要的字符串的中間部分?此外,你的目標的中間部分是未知的長度。
非常感謝您爲您提供的任何幫助。如果您需要更多信息,請詢問;我將非常樂意上傳部分甚至是全部代碼以獲得更多幫助。再次非常感謝你。