请大侠帮忙,关于——汉字——的问题!!!!

hawk_js 2003-08-20 03:57:52
有一字符串sStr='ABC我们',
现在要拷贝其中的每一个字符使得字符串s分别为:
s:='A';
s:='B';
s:='C';
s:='我';
s:='们';
我用的方法是s:=Copy(sStr,i,1); 其中的i分别为1,2,3,4,5。
问题:
在拷贝A、B、C时都是正确的,可当拷贝到汉字‘我’时就不行了,只拷贝了‘我’的一半,只有把拷贝函数改为Copy(sStr,i,2)才行,可我不知道字符串中哪一个字符是汉字啊???
请问大侠,应该怎么处理这个问题?先谢谢了;))
...全文
25 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawk_js 2003-09-09
  • 打赏
  • 举报
回复
不好意思,请问IsDBCSLeadByte 这个函数怎么使用的?
lemon_wei 2003-09-09
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
str:string;
begin
memo1.Clear;
str:=edit1.Text ;
j:=length(str);
i:=1;
for i:=1 to j do
begin
case ByteType(str,i) of
mbSingleByte: memo1.lines.add(inttostr(i)+':不是汉字');
mbLeadByte: memo1.lines.add(inttostr(i)+':是汉字的第一个字符');
mbTrailByte: memo1.lines.add(inttostr(i)+':是汉字的第二个字符');

end;
end;
end;
英文的标点符号是字符,中文的标点符号点两个字节,算一个汉字
布学无数 2003-09-08
  • 打赏
  • 举报
回复
有一个API顶好用:
BOOL IsDBCSLeadByte(BYTE TestChar);
可以用这个函数先判断第一个字节,如果函数返回TRUE,则说明这是一个汉字的第一个字节。
就可以Copy(sStr,i,2);否则Copy(sStr,i,1);
hawk_js 2003-09-08
  • 打赏
  • 举报
回复
请问标点符号在中英文状态下ASCII分别有什么区别???
hawk_js 2003-09-01
  • 打赏
  • 举报
回复
请问标点符号在中英文状态下ASCII分别有什么区别???
madyak 2003-08-24
  • 打赏
  • 举报
回复
有一字符串sStr='ABC我们',
现在要拷贝其中的每一个字符使得字符串s分别为:
s:='A';
s:='B';
s:='C';
s:='我';
s:='们';
将s和sStr全部声明为Widestring要方便些
madyak 2003-08-24
  • 打赏
  • 举报
回复
把s声明为Widestring处理汉字要方便些!
hawk_js 2003-08-22
  • 打赏
  • 举报
回复
up up up
jianxin_js 2003-08-21
  • 打赏
  • 举报
回复
顶一下
hawk_js 2003-08-20
  • 打赏
  • 举报
回复
hawk_js 2003-08-20
  • 打赏
  • 举报
回复
请问为什么 s:=Copy(Widestring(sStr),i,1);

“A,BC我,们”读到“我”后就不读了,好象不认识中文逗号“,”???
hawk_js 2003-08-20
  • 打赏
  • 举报
回复
顺便问一下:
标点符号“, , 。 . ”等是占几个字节,
中文状态下的“ , ” 与英文状态下的 “ , ” 一样吗?
charles2118 2003-08-20
  • 打赏
  • 举报
回复
i:=1;
while i<=length(sStr) do
begin
if ord(str[i])>128 then //汉字
begin
S:=Copy(sStr,i,2);
i:=i+2;
end
else //普通字符
begin
S:=Copy(sStr,i,2);
i:=i+1;
end;
end;
江山易改 2003-08-20
  • 打赏
  • 举报
回复

s:=Copy(Widestring(sStr),i,1);
江山易改 2003-08-20
  • 打赏
  • 举报
回复
s:=Copy(Webstring(sStr),i,1);
charles2118 2003-08-20
  • 打赏
  • 举报
回复
汉字是占两个字节的!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧