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

C++简易菜单程序:用户输入字符串中间字符获取功能实现问题

问题原因

你现有代码中选项1的逻辑存在两处核心错误:

  • 混淆了「判断字符串长度奇偶」和「计算中间字符下标」的执行顺序,你当前写的usrinput.length() /2 % 2是先算长度除以2再判断奇偶,完全不符合需求
  • 两个分支的判断条件逻辑重叠且错误,无法正确对应奇偶长度的判断场景

正确实现

你只需要把选项1的代码替换为如下内容即可:

if (selection == 1)
{
    cout << "中间字符: " << endl;
    cout << "=======" << endl;   
    int len = usrinput.length();
    if (len % 2 == 1) {
        // 奇数长度,整数除法得到的len/2刚好是中间字符的下标
        cout << usrinput[len / 2] << endl;
    } else {
        // 偶数长度,直接提示
        cout << "不存在中间字符" << endl;
    }
}

额外注意点

如果你的程序后续要支持用户多次输入新字符串,要注意cin >> selection执行后会在输入缓冲区留下换行符,后续调用getline会直接读到空字符串,需要手动清空缓冲区处理。

内容的提问来源于stack exchange,提问作者mudd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:36:11