使用ctype.h(C+;+;)进行错误处理 我发现了C++中的库的用法,即 ctype.h
我有一个用户输入,它是一个接受单词的字符串,正在使用使用ctype.h(C+;+;)进行错误处理 我发现了C++中的库的用法,即 ctype.h,c++,ctype,C++,Ctype,我有一个用户输入,它是一个接受单词的字符串,正在使用ispunt()进行错误处理,以不接受标点符号。但是我想ispunt()接受“.”。我是否可以将参数设置为跳过“'”?如果我正确理解了您的问题,您希望ispunt在字符上返回false。如果是这种情况,您只需为其编写一个自定义包装器即可 int myispunct(int c) { return c == '\'' ? 0 : ispunct(c); } 首先检查c是否为”。如果是,它返回0,否则它将c传递到ispunct并从中返回。
ispunt()
进行错误处理,以不接受标点符号。但是我想ispunt()
接受“.”。我是否可以将参数设置为跳过“'”?如果我正确理解了您的问题,您希望ispunt
在字符上返回false。如果是这种情况,您只需为其编写一个自定义包装器即可
int myispunct(int c) {
return c == '\'' ? 0 : ispunct(c);
}
首先检查c
是否为”
。如果是,它返回0,否则它将c
传递到ispunct
并从中返回。如果我正确理解了您的问题,您希望ispunct
对字符返回false。如果是这种情况,您只需为其编写一个自定义包装器即可
int myispunct(int c) {
return c == '\'' ? 0 : ispunct(c);
}
首先检查c
是否为”
。如果是,它返回0,否则它将c
传递到ispunt
并从中返回。不,没有,因为\''
是标点符号,这就是ispunt()
寻找的。您可以手动检查字符。不,没有,因为'\'
是标点符号,这就是ispunct()
要查找的。您可以手动检查字符
try
{
if ( std::ispunct(word,loc) && word != "\'" )
throw string("Punctuations other then \' are not allowed!");
}
catch(string ex)
{
//error handling
}
其中word
是您的字符串
其中word
是您的字符串。好吧,那将是大量的工作。谢谢你指出这一点。我现在试着用你的方法和我的方法来比较。好吧,那将是大量的工作。谢谢你指出这一点。我现在试着用你的方法和我的方法来比较。