分隔字符串中的数字。帕斯卡
Separating numbers in a string. Pascal
我有问题。我学习 Pascal 才几个星期,而且我知道的不多。我必须编写一个程序来计算 3 个输入的数字。问题是所有 3 个都需要在一次编辑中输入,中间有空格。所以基本上我有一个字符串 'number number number'。如何将这些数字分隔为 3 个单独的字符串,以便将它们转换为整数。
使用复制功能是一种方法。抱歉格式问题,我无法理解如何在这些答案部分正确粘贴代码片段。
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;
您还需要注意输入的值是数字而不是字母,通常使用 try..except 块完成。
在 Pascal 中有 built-in 程序从控制台检索输入。
获取数字输入最简单的方法是使用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()
检测到三个用 space 分隔的输入,等待 [Enter] 键并将整数值分配给 x ,y,z 变量。
我有问题。我学习 Pascal 才几个星期,而且我知道的不多。我必须编写一个程序来计算 3 个输入的数字。问题是所有 3 个都需要在一次编辑中输入,中间有空格。所以基本上我有一个字符串 'number number number'。如何将这些数字分隔为 3 个单独的字符串,以便将它们转换为整数。
使用复制功能是一种方法。抱歉格式问题,我无法理解如何在这些答案部分正确粘贴代码片段。
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;
您还需要注意输入的值是数字而不是字母,通常使用 try..except 块完成。
在 Pascal 中有 built-in 程序从控制台检索输入。
获取数字输入最简单的方法是使用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()
检测到三个用 space 分隔的输入,等待 [Enter] 键并将整数值分配给 x ,y,z 变量。