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