0

あなたの誰かが私が抱えている問題で私を助けることができるかどうか疑問に思っていました. 現在、C スタイルの文字列を受け取り、一時的な C++ スタイルの文字列を作成して C 文字列を格納し、find_first_not_of コマンドを使用して無効な文字を検索する関数があります。ただし、フランス語の文字を含む文字列を渡すと、それらが有効であると認識されません。

Windows 8でVisual Studio 2013を使用していますが、VSがファイルをエンコードする方法とコマンドプロンプトからの入力をエンコードする方法が異なるという問題があると何人かの人が言っていますが、それを修正する方法がわかりません。私がこれを行う方法を知っている人はいますか?または、私のコード全体に別の問題がありますか?

関数の私のコードは次のとおりです。

bool checkValidCharacters(const char* input)
{
    std::string checkString(input);
    bool validCharacters = false;
    std::size_t found = checkString.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàâäèêëîôùûüÿçÀÂÄÈÉÊÎÏÔÙÛÜŸÇ-. ");
    if (found != std::string::npos)
    {
        printf("Error: Invalid character: %c", input[found]);
    }
    else
    {
        printf("All characters valid\n");
        validCharacters = true;
    }
    return validCharacters;
}

本当にありがとう。

4

0 に答える 0