如何让程序对STRING的每行信息数其字符数,要求得到包括空格多少字,不包括空格多少字。其中汉字,字母,标点符号都算一位。

解决方案 »

  1.   

    很简单啊
    如 
    procedure aa(string:s);var
    i,j:integer;
    begin
    i:length(s);
    j:=length(trim(s));//trim去掉空格,和控制符号。length总知道吧
    i-j就是空格的数量。j就是不包括空格的数量。
      

  2.   

    回复人: yuzhantao(找不到女朋友还得再养狗) 
    很简单啊
    如 
    procedure aa(string:s);var
    i,j:integer;
    begin
    i:length(s);
    j:=length(trim(s));//trim去掉空格,和控制符号。length总知道吧
    i-j就是空格的数量。j就是不包括空格的数量trinm函数只是截断字符串后面的空格和控制符
    如果
    var
    test:string;
    begin
    test:='st r ing';
    那么你上面那段代码i和j的值是相等的.
      

  3.   

    只要使用WideString,一切就迎刃而解!
    请看以下代码:procedure TForm1.Button1Click(Sender: TObject);
    var
      ws: WideString; //注意这是 WideString 类型!
      i,num: Integer;
    begin
      ws:=Memo1.Text;
      showmessage('包括空格共 '+inttostr(length(ws))+ ' 字。');  num:=0;
      for i:=1 to Length(ws) do
      begin
        if (ws[i]<>' ') and (ws[i]<>' ') then  //全半角空格均过滤之
          num:=num+1;
      end;
      showmessage('不包括空格共 '+inttostr(num)+ ' 字。');
    end;end.
      

  4.   

    这个问题已经解决通过ASCII中127分界的方法解决的。现在有个问题是,在STRINGS中有分隔符,希望通过用户指定的第N个分隔符后开始计算
      

  5.   

    定位字符串了有一个定位的
    function Pos(Substr: string; S: string): Integer;
    有了它我相信你可以实现你的功能了。