C++ 什么是标点符号?不允许使用ispunct()

C++ 什么是标点符号?不允许使用ispunct(),c++,C++,我需要计算字符串中标点符号的数量,但不包括cctype/ctype.h,不使用 ispunct() 愚蠢的问题:这些都是标点符号吗 !$%&'*+,-./:@[]^{{|}~可在此处找到: “空间”也在列表中吗?我只想到了?!,;'非$%^&…对于什么是标点符号非常清楚: 检查给定字符是否为按当前C语言环境分类的标点字符。默认的C语言环境对字符进行分类!$%&'*+,-./:@[]作为标点符号 这太本地化了。如果我们还可以投票结束这场比赛就好了。做你自己的蹩脚作业。写一个程序,检查你的语言环境

我需要计算字符串中标点符号的数量,但不包括cctype/ctype.h,不使用

ispunct()
愚蠢的问题:这些都是标点符号吗

!$%&'*+,-./:@[]^{{|}~可在此处找到:

“空间”也在列表中吗?我只想到了?!,;'非$%^&…

对于什么是标点符号非常清楚:

检查给定字符是否为按当前C语言环境分类的标点字符。默认的C语言环境对字符进行分类!$%&'*+,-./:@[]作为标点符号


这太本地化了。如果我们还可以投票结束这场比赛就好了。做你自己的蹩脚作业。写一个程序,检查你的语言环境中所有有效字符的ispunct,然后将结果复制到你自己的源代码中。打印出所有非点,我知道这是错误的!isspace | isdigit | isalpha,而不是反斜杠。最后一个的原因可能是什么?但问题并不是说在C语言环境中有一个默认的语言环境。@hvd不过有一个默认的语言环境。@πάνταῥεῖ 是的,但是不排除调用setlocaleLC_ALL的代码的其他部分;在OP的代码被调用之前。如果OP停留在默认区域设置中,则问题中应包含相关信息。这并不是对你的答案的批评,这是问题之一。值得一提的是,空格字符在任何语言环境中都不是标点符号,因为这是一个特定的问题。