2012-04-09 42 views
1

我不知道是否有一種方法,以避免在這種情況下,使用臨時字符串:避免使用.c_str命令使用臨時字符串?

tempString = inputString.substr(commaLast,commaCurrent-1); 
yPos = strtod(tempString.c_str(), NULL); 

沒有辦法使用SUBSTR命令,並沒有先存儲在臨時串子返回c_str (假設我不想修改原始字符串)。

+0

你是否在用inputString做其他事情?首先使用strtod和c_str這一事實表明,您可能會使用std :: stringstream來獲得更好的解決方案。 – 2012-04-09 20:44:44

+0

是的,我根據幾個條件分割字符串。我試圖解析一個SVG行。我看過std :: stringsteam,但我認爲這隻適用於空白分割 – jimspree1200 2012-04-09 20:56:51

+0

>>運算符默認情況下是用空格分隔的,但您不必讓它阻止;一個stringstream會讓你處理字符串數據,就像std :: cin的輸入一樣,所以在讀取之前/之後,你可以使用'istream :: ignore(/ * ... * /)'來跳過後面的字符。幷包括您選擇的任何分隔符。 (我對SVG格式不太瞭解,所以對你可能有用或不可用 - 但我發現它適用於簡單的分隔數據) – 2012-04-09 21:28:42

回答

0

您是否嘗試過以下方法?

yPos = strtod(inputString.substr(commaLast,commaCurrent-1).c_str(), NULL); 
+0

Arg!我可以發誓我做到了!我猜我在嘗試: yPos = strtod(inputString.c_str()。substr(commaLast,commaCurrent-1),NULL); – jimspree1200 2012-04-09 20:50:14