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

凯撒密码实现求助:如何将移位后的ASCII整数转换为字符

解决凯撒密码中ASCII值转字符的问题

嘿,我来帮你搞定这个转换问题!你已经完成了最核心的移位计算,现在只需要把移位后的ASCII数值强制转换为char类型,再拼接成最终的加密字符串就可以了。

修正后的完整代码

private void button1_Click(object sender, EventArgs e)
{
    string input = textBox1.Text;
    int shift = int.Parse(textBox2.Text);
    string result = string.Empty; // 用来存储最终加密后的字符串

    foreach (char c in input)
    {
        // 获取当前字符的ASCII值,进行移位
        int shiftedAscii = (int)c + shift;
        
        // 把移位后的ASCII值转回字符,添加到结果中
        result += (char)shiftedAscii;
    }

    // 把加密后的字符串显示到TextBox3
    textBox3.Text = result;
}

关键说明

  • 类型转换:用(char)将int类型的ASCII值强制转换为对应的字符,这是你缺失的核心步骤。
  • 优化建议:上面的代码是基础实现,实际使用中建议处理字母边界(比如大写字母Z移位后应该回到A,小写z回到a),避免出现非打印字符。比如可以加个判断:
    if (char.IsUpper(c))
    {
        shiftedAscii = ((c - 'A' + shift) % 26) + 'A';
    }
    else if (char.IsLower(c))
    {
        shiftedAscii = ((c - 'a' + shift) % 26) + 'a';
    }
    // 非字母字符可以选择保持不变或者按需求处理
    

这样修改后,你就能在TextBox3中看到正确的加密字符串啦!

内容的提问来源于stack exchange,提问作者Taylor-byte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:52:10