Ada语言修改字符串指定索引字符并返回的实现及报错解决
Ada字符串首字符替换实现方案
原代码错误点
- 形参模式问题:Ada 中
in模式的参数为只读对象,无法直接修改其值,你遇到的第一条报错assignment to "in" mode parameter not allowed就是因此触发 - 变量与语法错误:函数内赋值语句误用不存在的变量
C,且多处语句、声明末尾遗漏分号 - 输入调用错误:主程序中
Get方法传入了类型名String和Character,而非你声明的变量Str和Char,触发第二条类型不匹配报错
正确实现代码
with Ada.Text_IO; use Ada.Text_IO; procedure Test is function Change_Index_In_String( Str : in String; Char : in Character ) return String is -- 新建输入字符串的本地可修改副本 Local_Str : String := Str; begin Local_Str(Local_Str'First) := Char; return Local_Str; end Change_Index_In_String; Str : String(1..5); Char : Character; begin Put("Type a string (5 characters): "); Get(Str); Put("Type a character: "); Get(Char); Put("Your new string is: "); Put(Change_Index_In_String(Str, Char)); end Test;
效果验证
输入字符串Stack和字符W时,程序会输出Wtack,完全符合预期需求。
内容的提问来源于stack exchange,提问作者leun
相关产品推荐
相关产品推荐

