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

C++句子计数函数计算结果错误,寻求问题排查建议

问题分析与修复方案

你的函数存在三个关键问题,导致统计结果不符合预期:

  • 未定义变量txtLength:循环的终止条件应该使用输入字符串的实际长度,比如text.size()或text.length()
  • 错误使用strcmp比较单个字符:strcmp是用来比较以'\0'结尾的C风格字符串的,而&text[i]指向的是单个字符,没有终止符,调用strcmp会导致未定义行为。单个字符直接用==判断即可
  • 判断条件写错目标字符:把句子结束符.写成了<,导致无法识别以.结尾的句子

修正后的代码如下:

int calc_sent(string text)
{
    int numSent = 0;
    // 使用text.size()获取字符串长度
    for(int i = 0; i < text.size(); i++)
    {
        // 直接比较单个字符,修正错误的判断符号
        if (text[i] == '.' || text[i] == '?' || text[i] == '!')
        {
            numSent++;
        }
    }
    return numSent;
}

测试你提供的文本"My name is John. His name is Jack! Her name is Jane?",这个修正后的函数会正确返回3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:43:10