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

为什么C#中string类型name变量未存储输入值?如何实现大小写混合姓名输出

问题根因
  • 字符数组ch、结果数组name2的初始化时机错误:你在读取用户输入的姓名前就完成了两个数组的初始化,数组内容和长度始终沿用初始默认值"chez",后续用户输入的新姓名完全没有进入处理逻辑,这就是你觉得name变量没有成功存储值的核心原因。
  • 字符替换逻辑冗余:原代码中对letter做全局替换的写法没有必要,直接将匹配到的单个字符转大写即可。
  • 默认是精确大小写匹配:如果需要实现无论输入的目标字母是大写还是小写都能匹配替换,可调整判断条件做大小写不敏感校验。
修复后可运行代码
string name = "";
string letter = "";

Console.WriteLine("Insert your name");
name = Console.ReadLine();
// 读取到用户输入的姓名后再初始化相关数组
char[] ch = name.ToCharArray();
string[] name2 = new string[name.Length];

Console.WriteLine("Insert of letter");
letter = Console.ReadLine();

// 若需要忽略大小写匹配,可取消下一行注释
// letter = letter.ToLower();

for (int i = 0; i < ch.Length; i++)
{
    name2[i] = ch[i].ToString();
    // 忽略大小写的判断写法:if (name2[i].ToLower() == letter) 
    if (name2[i] == letter) 
    {
        name2[i] = name2[i].ToUpper();
    }
}

// 输出最终处理后的姓名
for (int i = 0; i < name2.Length; i++)
{
    Console.Write(name2[i]);
}
Console.WriteLine();
效果示例

输入姓名为john,输入要转为大写的字母为h,运行后输出结果为JoHn,符合需求。

内容的提问来源于stack exchange,提问作者Chris Van Gewden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:30:06