请问如何分辨字符串中全角和半角,即汉字和空格或英文单字(100分)

  • 主题发起人 主题发起人 detail
  • 开始时间 开始时间
D

detail

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一串口传送字符串,为避免其引起乱码,需要考虑其中全角和半角的区别,请问如何
识别,还有就是间隔出现空格,单字,如“显示 程 序”字符串,如何避免出现乱码?
还有,如何对单片机传递字符,才能避免因速度不一致而引起的乱码,我现在是直接写、
字符串,如writefile(string),请问有什么解决方法?
多谢!
 
将其转成widestring就没问题了:
var
s: widestring;
begin
s := '显示 汉 字';
for i := 1 to Length(s) do
showmessage(s);
end;
 
来晚了。
 
一个函数:IsDBCSLeadByte即可。
 
tmpstr:string;

for i:=0 to length(tmpstr) do
if ord(tmpstr)>128 then //汉字

 
多人接受答案了。
 
后退
顶部