我又遇上麻烦了,如何按字节分割取出字符串中中文字符?(50分)

  • 主题发起人 主题发起人 文鹰
  • 开始时间 开始时间
看看Copy()函数
 
loop取字符串的ASCII的值是汉字的话。它的高位和底位的
ASCII码会小于0,然后再用copy函数.
 
用ByteType函数来检查,如果返回mbSingleByte则表示这个字符是普通单字节字符,
如果返回mbLeadByte则表示这个字符是双字节字符的第一个字符,
如果返回mbTrailByte则表示这个字符是双字节字符的第二个字符

 
一个字节最高位为1,则是中文字符。
可用ord(X)函数
 
昨天忘记给你源代码:
function get_hz(str:string):string
var
n:len:integer;
re:string;
ch:string;

begin

while (true) do //分离汉字和字母
begin
if (n>len) then
break;
if (ord(str[n])>123) then
begin //这时为汉字
re:=re+copy(str,n,2);
ch:=ch+'~';
n:=n+2;
end
else
begin //这时为字母
ch:=ch+hz[n];
n:=n+1;
end;
end;
result re;
end;
//注意上面re为提取的汉字
//注意上面ch为提取的字符
six6666six@cmmail.com
 
我已接受。谢谢!
 
后退
顶部