2012-04-09 39 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