BLUF: в этой функции \ 'запрашивает сообщение об ошибке, но не \ ?, Почему?
char key[] = "\a\b\f\n\r\t\v\\\'\"#%&*;:<>\?/{|}~";
if (strpbrk(*local_str, key) != NULL )
{
vico_param_out->out_valid = false;
AfxMessageBox("L'identifiant de numérisation est invalide. Vous avez saisi des caractères qui ne peuvent pas faire partie d'un nom de fichier windows (\"#%&*;:<>\?\\/{|}~). Veuillez faire les corrections nécessaires.");
}
Этот фрагмент кода должен проверять, присутствует ли один из недопустимых символов в строке ввода(* local_str).Хорошо работает с некоторыми из них, но если некоторые символы, такие как \?находятся в * local_str.он принимает его и не показывает сообщение об ошибке.Я не t understand what
s происходит.
Пример: ABC действителен
AB 'недействителен, запрос на исправление
AB?недействителен, но проваливается через
A '?не действует, но также проваливается.
Пожалуйста, помогите.Я в восторге от этого сообщества.
РЕДАКТИРОВАТЬ: Проблема решена.Казалось бы, эта функция работает, но еще один процесс, о котором я не знал, - это перехватывать ключи в local_str в виде ярлыков перед вызовом моей функции, что объясняет странное поведение.Я переместил свою функцию для оценки при вводе каждого нажатия клавиши.
Мои самые глубокие извинения за досаду.Спасибо вам всем.