var
  str:String;
begin
  length(Str);//length of a string
end;

解决方案 »

  1.   

    String类型长度不定的。用SizeOf不行吧
      

  2.   

    sizeof函数取得的就是字节数.length返回的数字可能会有以下几种:单字节,双字节.而sizeof返回的始终都是字节数.
      

  3.   

    TO  smario_li() :
    这样试试吧:
    var
      i:integer;
      C:AnsiChar;
      Str:String;
    begin
      i:=SizeOf(C)*(length(Str)+1);
    end;
    C为每个String中的字符的大小,乘上Length(Str)+1为总的字符个
    (String变量的第0个单元被占用了,也应该算上)
      

  4.   

    刚才我没有说清楚.再说一次.
    如果你在实际应用中使用的是string类型,而编译开关用的是默认的话,则你在使用Ansistring,string类型时length返回的为该字符串的字节数.如果你使用的是widestring类型则返回的就不是字节数,而是字符个数了.当然你可以用sizeof测试一下该类型是几个bite的,然后再作处理也可.