-- Uses a declare block to input and dynamically allocate a string

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure dec_blk_str_in  is 
begin
    -- Declare and initialize
    declare
        s: String := get_line;
    begin
        put_line(s);
        put_line(s'length'img);
    end;
end dec_blk_str_in;

-- Input:
--| Hi mom
--| 6