Pascal 中的字符串到整数转换,怎么做?

问题描述 投票:0回答:6

如何将字符串中打印的数字转换为整数?

谢谢你。

pascal
6个回答
11
投票

程序 Val:

procedure Val(S; var V; var Code: Integer);

此过程对小数和实数进行运算。

参数:

  • S 字符序列;为了正确转换,它必须包含“+”、“-”、“,”、“.”、“0”..“9”。
  • V 转换结果。如果结果是整数,则 S 不能包含“,”、“.”。
  • C 返回 S 中中断转换的字符位置。

用例:

Var Value :Integer;

Val('1234', Value, Code);  // Value = 1234, Code = 0
Val('1.234', Value, Code); // Value = 0, Code = 2
Val('abcd', Value, Code);  // Value = 0, Code = 1

1
投票

您可以使用Val函数。

示例:

var
   sNum: String;
   iNum: Integer;
   code: Integer;

begin
   s := '101';
   Val(s, iNum, code); 
end.

1
投票

你想要

Val()


1
投票

你可以这样使用,

var

i: integer;
s: string;
begin
str(i, s);
write(i);

0
投票
 Textval := '123';
    Val(Textval, Number, Code)  ---> Code = 0, Number = 123

   Textval := '12345x2';
   Val( Textval, Number, Code)  ---> Code = 6,  Number remains unchanged;

Val( TextVal, Number , Code) 将字符串转换为数字。 如果可能,代码结果 = 0,否则错误指示编号。


0
投票

自 ISO 标准 10206“扩展 Pascal”以来,过程

readStr
已内置到编程语言中。 它在功能上相当于
read
/
readLn
text
文件结合使用(除了不需要
text
文件)。 这意味着前导空格将被忽略,后跟一个有效的
integer
文字,该文字以空格或简单的字符串末尾结尾。 示例:

program readStrDemo(output);
    var
        n: integer;
    begin
        readStr('  +1234 Hello world!', n);
        writeLn(n) { prints 1234 }
    end.

与 Borland Pascal 的

val
程序相反,您无法发出用户友好的错误消息,特别是哪个(第一个)字符是非法的。 Pascal 的内置
read
/
readLn
/
readStr
过程完全失败,具体细节取决于处理器。 另一方面,
read
/
readLn
/
readStr
是标准化的,因此不存在供应商锁定。

© www.soinside.com 2019 - 2024. All rights reserved.