2017-08-31 115 views
1

我目前正在Qt中進行一個項目,用戶可以在配置中輸入一個值來將其設置爲全局。該值將被存儲在一個.xml文件中,並從中讀取。在QLineEdit中用點替換逗號

因爲我在Visual Studio中使用C++,它只接受一個點:14.6是好的,但14,6不是。它不會拋出錯誤,但該值將被保存爲零。由於語言的原因(德語是唯一需要逗號直到這一點的語言,並且大多數語言也使用該點作爲分隔符),所以我希望將它保留在xml格式中。

我搜索類似於:Replace ,(comma) by .(dot) and .(dot) by ,(comma)。 這個答案反映到Javascript,但我需要它在c + +。

我想知道什麼是最有效的解決方案。我曾經想過用正則表達式「翻譯」它,但我確信有更多的方法可以做到這一點。

+0

你說的是字符串或數字? – user463035818

+0

我正在使用QString –

+3

也許相應地設置[locale](https://stackoverflow.com/q/15220861/1460794)? – wally

回答

1

它易於使用std::replace功能:

QString s = "aaa,bbb,ccc"; 
std::replace(s.begin(), s.end(), ',', '.'); 
qDebug()<< s; 

或QString的替換功能:

QString s = "aaa,bbb,ccc"; 
s.replace(",", "."); 
qDebug()<< s; 

輸出:aaa.bbb.ccc