2017-08-31 78 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