2017-08-31 6 views
1

現在、Qtのプロジェクトで作業しています。ここでは、ユーザーがグローバルに設定するために値を入力できます。この値は.xmlファイルに格納され、そこからも読み取られます。QLineEditでポイントをカンマで置き換えます

私はVisual StudioでC++を使用しているため、ポイント:14.6はOKですが、14,6は受け入れられません。エラーは発生しませんが、値はゼロとして保存されます。私は言語の理由から、この点までの形式でxmlに保存したい(ドイツ語はこの時点までコンマを必要とする唯一の言語であり、ほとんどの言語はセパレータとしてもその点を使用する唯一の言語です)

次のようなものです:Replace ,(comma) by .(dot) and .(dot) by ,(comma)。 この回答はJavascriptを参照していますが、私はC++でそれを必要としています。

私は、最も効率的な解決策を知りたいと思います。私はalredyが正規表現でそれを "翻訳"することを考えましたが、これを行うためのよりエレガントで短い方法があると確信しています。

+0

を話していますか? – user463035818

+0

私はQStringを使用しています –

+3

おそらく[ロケール](https://stackoverflow.com/q/15220861/1460794)を設定しますか? – wally

答えて

1

それは、std::replace機能を使用するのは簡単です:

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

をOR QStringの置き換え機能:

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

出力:あなたは、文字列や数値についてaaa.bbb.ccc

関連する問題