You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:15:01