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