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

为何我的C++代码中if/else if语句失效且to_lowercase不生效?

问题分析与修复

核心问题说明

  • 自定义消息无法触发:to_lowercase(name)会将输入姓名转为全小写,但你却和首字母大写的"Tim"/"John"做相等判断,永远无法匹配成功。
  • 姓名未转为小写输出:你仅调用了to_lowercase(name)但未将返回值保存到变量,也没有输出转换后的结果,自然看不到小写效果。

修复后的test_user_details函数代码

void test_user_details()
{
    string name;
    string line;
    int age;

    name = read_string("What is your name: ");
    // 将姓名转为小写并保存
    string lower_name = to_lowercase(name);
    // 直接用read_integer简化年龄读取逻辑
    age = read_integer("What is your age: ");

    // 输出转换后的小写姓名
    write_line("Hello, " + lower_name);

    // 和小写字符串做匹配判断
    if (lower_name == "tim")
    {
        write_line("\nWelcome Tim, creator of this program");
    }
    else if (lower_name == "john")
    {
        write_line("\nWelcome John, tester of this program");
    }
    else
    {
        write_line("Are you Tim or John?");
    }

    write("Age: ");
    write_line(age);
}

额外优化点

  • 复用已实现的read_integer函数读取年龄,避免重复写字符串转整数的逻辑,让代码更简洁。
  • 提前将姓名转换为小写并存储,后续统一使用该变量,避免重复调用to_lowercase函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:27:39