在字符串中分开数字.帕斯卡



我有问题。我只学习帕斯卡尔只有几周的时间,但我不太了解。我必须编写一个必须计算出3个输入数字中的东西的程序。问题在于,所有三个都需要在一个介于两者之间的空间中输入一个编辑。因此,基本上我有一个字符串"编号号"。我如何将这些数字分为3个单独的字符串,以便我可以将它们转换为整数。

在帕斯卡(Pascal)中有内置的程序可以从控制台中检索输入。

获得数字输入的最简单方法是使用Read()/ReadLn(),这也可以使从字符串转换为数字值:

procedure GetNumbers(var x,y,z: Integer); 
begin 
  WriteLn('Enter three numbers separated with space and then press enter.');
  ReadLn(x,y,z); 
end;

在这里,ReadLn()检测三个输入,与空间分开,等待 [enter] 键,并将整数值分配给x,y,z变量。

使用复制功能是一种方法。抱歉,我不明白如何在这些答案部分正确粘贴代码段。

function TMyForm.Add( anEdit : TEdit ) : integer;
var
    Idx : integer;
    TempString : string;
function GetNext : integer;
begin
    result := result + StrToInt( copy( TempString, 1, Idx - 1 ) );
    TempString := copy( TempString, Idx + 1, MAXINT );
end;
begin
    result := 0;
    TempString := anEdit.Text;
    repeat
        Idx := pos( ' ', TempString );
        if Idx > 0 then
        result := GetNext;
    until Idx = 0;
    if trim( TempString ) <> '' then
        //this is the last piece of it then
        result := result + StrToInt( trim( TempString ) );
end;

您还需要注意输入的值是数字而不是字母,通常是通过尝试。

最新更新