我發現圖書館在C++是錯誤使用文件ctype.h處理(C++)
ctype.h
我有一個用戶輸入的是一個字符串接受的話和做的錯誤使用ispunct()
處理用法不接受標點符號。但我想ispunct()
接受「'」。無論如何,我可以設置參數跳過「'」?
我發現圖書館在C++是錯誤使用文件ctype.h處理(C++)
ctype.h
我有一個用戶輸入的是一個字符串接受的話和做的錯誤使用ispunct()
處理用法不接受標點符號。但我想ispunct()
接受「'」。無論如何,我可以設置參數跳過「'」?
如果我正確理解您的問題,您希望ispunct
在'
字符上返回false。如果是這種情況,你可以寫一個自定義的包裝器。
int myispunct(int c) {
return c == '\'' ? 0 : ispunct(c);
}
它首先檢查是否c
是'
。如果是,它返回0,否則它通過c
到ispunct
並從那返回。
不,沒有,因爲'\''
是標點符號,這就是ispunct()
尋找的。您可以手動檢查字符。
try
{
if (std::ispunct(word,loc) && word != "\'" )
throw string("Punctuations other then \' are not allowed!");
}
catch(string ex)
{
//error handling
}
其中word
是你的字符串。
那麼,這將是很多工作。感謝您指出。我現在試着用你的方法和我的方法進行比較。 –