汉字是用两个字节存储,每个字节的最高位为1,也就是说组成汉字的两个字节都是负数,以此来判断是否为汉字。
先统计截取位置之前,字节小于0的个数,如果是偶数,直接
str.substr(0,Pos-1)
如果是奇数,说明汉字一半,则:
str.substr(0,Pos-1);
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
int Pos;
int count=0;
cin>>str>>Pos;
for(int i=0;i<Pos;i++)
{
if(str[i]<0)
count++;
}
if(count%2==1)
{
cout<<str.substr(0,Pos-1);
}
else
cout<<str.substr(0,Pos);
return 0;
}