我想问一下。一个字符串,'000035'找出不等于0的数在第几个位置是什么函数啊?

解决方案 »

  1.   

    var
      I :Integer;
      AStr :string;
    begin
      AStr :='000035';
      for I :=0 to Length(AStr) - 1 do
      begin
        if Copy(AStr,I,1)<>'0' then
           ShowMessage(IntToStr(I));
      end;  
      

  2.   


    function PosNotEqualZero(S: string): Integer;
    var
      i : Integer;
    begin
      Result := 0;    //如果S为空串, 或者S全部是0, 则函数返回0
      for i := 1 to Length(S) do
        if S[i] <> '0' then
        begin
          Result := i;
          break;
        end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      ShowMessage(IntToStr(PosNotEqualZero('')));
      ShowMessage(IntToStr(PosNotEqualZero('0000')));
      ShowMessage(IntToStr(PosNotEqualZero('000035')));
    end;
      

  3.   


    for I :=0 to Length(AStr) - 1 do应该改为:
    for I :=1 to Length(AStr) do
      

  4.   


    var
      i :Integer;
      str :string;
    begin
      str :='000035';
      for i :=1 to Length(str) do
      begin
        if str [i] <>'0' then
        begin
           ShowMessage(IntToStr(i));
           Break;
        end;
      end;
    end;
      

  5.   


    var
      iTemp,iPos: Integer;
      s1,s2: String;
    begin
      s1 :='000035';
      i  := StrToInt(s1);
      s2 := IntToStr(i);
      iPos := Length(s1) - Length(s2);
      Edit1.Text := IntToStr(iPos);
    end;
      

  6.   

    function PosNotEqualZero(S: string): Integer;
    begin
      for Result := 1 to Length(S) do
        if S[Result] <> '0' then
          Exit;
      Result := 0;
    end;