该如何判断特速规定的字串长度(35分)

  • 主题发起人 主题发起人 esgeht
  • 开始时间 开始时间
E

esgeht

Unregistered / Unconfirmed
GUEST, unregistred user!
我这样规定:
一个中文字长度为一个字长
英文字符,数字,以及标点符号等都认为是一个字长

那一个既有中文字,又有数字,又有英文字符,又有标点符号的字符串
我该如何判断其长度?
 
一律用length(s:string)
 
length()没用的
对于一个中文字length()认为是两个字长
而对于一个数字,一个字母,认为是一个字长
根本跟我的要求不符
 
sw:widestring;
sw:=s;
n:=length(sw);
 
你都规定英文,数字以及标点都用全角字符输入不就跟汉字一样了。
 
用一个循环,判断一下每个字符的ACSII码,再计算出新的长度
 

Function GetLength(const S: string): integer;
var P: PChar;
begin
Result := 0;
P := PChar(S);
while P^ <> #0 do
begin
if P^ in LeadBytes then Inc(P);
Inc(P);
Inc(Result);
end

end;
 
接受答案了.
 
后退
顶部