编写将std::complex<double> str2complex(std::string str);
包含各种格式的std::string
转换为std::complex<double>
的函数1.0
的最佳方法是什么?
我假设给这个函数的字符串只包含一个复数,但是能够做一些错误检查也很好。
我希望它的格式是:
对于数字real = 0.0
,imag = (1.0)
:
1.0
对于数字real = 2.0
,imag = (1.0,2.0)
1.0+2.0i
1.0 + 2.0i
1.0+2.0*i
1.0 + 2.0*i
+1.0+2.0i
+1.0+2.0*i
+2.0*i+1.0
2.0*i+1.0
2.0i+1.0
:
operator>>
对于前两个,标准{{1}}应该有效,但对于其他人,我不确定采取什么方法。
答案 0 :(得分:0)
看起来你需要一个解析器。对于所有重要的事情,您只需检测&#39; +&#39;和&#39;我&#39;在第一个以外的情况下。
我的想法如下: