QStringをファイル名に変換したい。ファイル名をきれいに見せたいので、すべての非文字と非数字をアンダースコアに置き換えたいと思います。次のコードはそれを行う必要があります。
#include <iostream>
#include <QString>
QString makeFilename(const QString& title)
{
QString result;
for(QString::const_iterator itr = title.begin(); itr != title.end(); itr++)
result.push_back(itr->isLetterOrNumber()?itr->toLower():'_');
return result;
}
int main()
{
QString str = "§";
std::cout << makeFilename(str).toAscii().data() << std::endl;
}
しかし、私のコンピューターでは、これは機能しません。出力として取得します。
�_
エクスペンションを探していると、デバッグによりQString("§").size()
= 2>1=と表示されQString("a").size()
ます。
私の質問:
- QStringが「§」に2つのQCharを使用するのはなぜですか?(解決済み)
- 解決策はあり
makeFilename
ますか?それは中国人にも役立つでしょうか?