在c ++字符串中比较法语字符时出错

时间:2015-03-10 18:35:56

标签: c++ string file-encodings

我想知道你是否有人可以帮我解决我遇到的问题。目前我有一个函数,它接受一个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;
}

非常感谢。

0 个答案:

没有答案