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