[求助]自己写的一个判断中文标点的程序,出了点问题,请各位朋友进来看看
代码在这下面,编译通过,运行的时候本人测试了下,无法判别中文标点符号,具体是什么原因,请各位高手告知.
我的思路是,把中文标点预先存储在string类型的 punct中,把输入的文本储存在str中,接着根据string类型提供的查找函数find_first_of,查找punct在str中任意字符的第一次出现位置,由此来判断是否有中文标点。
#include<iostream>
#include<string>
using namespace std;
void main()
{
string str;
string::size_type pos;
string punct=",。?、;:’“”!()《》";
cin>>str;
if((pos=str.find_first_of(punct,0))!=string::npos)
cout<<"标点位置为"<<pos<<endl;
else cout<<"无标点符号"<<endl;
}
如果有中文的标点符号确实可以判断是有,但是我这个还有个问题, 对于部分汉字,会误做为是标点,比如输入“啊”这个字,这个程序会把它认为是一个标点。 这个是什么原因?