string - Ada - 使用 S'length 输入字符串
问题描述
问题很简单,可以通过简单的 Get_Line 来解决,但问题提示并非如此。
必须创建一个子程序。子程序当然应该只有一个参数(即字符串)和返回字符串的长度(作为整数)。要获取字符串的长度,您可以执行 S'Length 并且在主程序中键入时必须使用字符串的长度。
例如:
键入一个包含 3 个字母的字符串:哇
你输入了字符串:哇
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure String_Program is
function String_Length (S : in String) return Integer is
Res : Integer;
begin
Res := S'Length;
return Res;
end String_Length;
S : String (1 .. 3);
begin
Put("Type a string containing 3 letters: ");
Get(S);
Put("You typed the string: ");
Put(String_Length(S), Width => 1);
end String_Program;
我已经按照指示完成了,但是我的程序输入了与字符串中的字符数量相对应的实际数字。所以当我输入“嘿”时,它会输入“3”。而且我知道为什么会这样,因为我将字符串的实际长度作为整数返回。如何输入实际字符串而不是数字?毕竟我要返回一个整数,所以这会很困难。
非常感谢您的帮助!
解决方案
with Ada.Text_IO; use Ada.Text_IO;
procedure String_Program is
function String_Length (S : in String) return Natural is
begin
return S'Length;
end String_Length;
S : String (1 .. 3);
begin
Put ("Type a string containing 3 letters: ");
Get (S);
Put ("You typed the string: ");
-- Put string S to standard output one character at a time
-- using String_Length.
for Offset in 0 .. String_Length (S) - 1 loop
Put (S (S'First + Offset));
end loop;
New_Line;
end String_Program;
推荐阅读
- django - 未分配 Django SearchRank 注释,生产中有错误,但开发中没有
- jenkins - Jenkins 的 Mattermost 插件不起作用
- php - App Proxy 下载文件而不是渲染液体
- javascript - 在 inIonic 中使用范围滑块显示数字时出现问题
- arrays - 无法从数组中返回字符串 - pig latin - Ruby
- javascript - 如果页面上不存在 Div 类,则显示 SweetAlert 弹出窗口
- c++ - gcc 或 clang 未优化函数指针间接 - 错误或有意?
- entity-framework - EF Core在方法中提取时忽略条件
- java - 将数据从 android 注册到 phpmyadmin 时出错
- c++ - “总和叶数”问题的解决方案