BLUF:在這個函數中,'提示錯誤信息但不是',爲什麼?部分識別的字符串無效? C++
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
正在發生。
實施例: ABC是有效
AB」不是校正
AB有效,提示mesage?無效,但通過
A'?是無效的,但也落空了。
請幫忙。我拒絕了這個社區。
編輯:問題解決了。我覺得這個函數可以工作,但另一個我不知道的過程是在調用函數之前捕獲local_str中的鍵作爲快捷鍵,因此出現了奇怪的行爲。當我輸入每個按鍵時,我移動了我的函數進行評估。
對於煩惱我深表歉意。 謝謝大家。
爲什麼鍵有重複的項目?你有\\,\\,\\和\「列出兩次 – 2010-08-18 20:09:26
local_str被定義爲'char **'嗎? – 2010-08-18 20:10:06
你有意拒絕空格字符嗎? – Potatoswatter 2010-08-18 20:11:18