You need to enable JavaScript to run this app. C语言递归实现字符串长度的解法疑问及C++代码通过MPL的原因
优惠活动
大模型
产品
解决方案
定价
更多

C语言递归实现字符串长度的解法疑问及C++代码通过MPL的原因

MPL平台递归函数题相关疑问

背景情况

  • 正在配合C语言教程使用MyProgrammingLab(简称MPL)平台学习编程,日常遇到的题目要求往往超出教材覆盖范围,本次碰到的递归函数类题目难度尤为突出,无法独立完成作答。
  • 题目要求:编写返回int类型的递归函数len,接收字符串参数,返回字符串的总字符数,递归判定规则明确为:
    • 若传入为空串(""),则返回长度为0
    • 若传入非空串,返回值为1,加上除去首字符后剩余字符串的长度
  • 从C论坛找到一段参考代码,该代码在要求提交C语言代码的MPL平台可正常通过验证。和平台以往的校验逻辑不同,之前只要提交带C语法的内容,平台都会提示“当前为C语言课程而非C++课程”并判定答案错误,本次没有触发该报错。
  • 可通过的参考代码内容:
int len(string s){
  if (s.length()==0){
    return 0;
  }else{
    return 1+(len(s.erase(0,1)));
  }
}

待解答问题

  • 是否存在符合题目要求的C语言原生语法实现解法?
  • 这段本质属于C++语法的代码,为什么能在C语言课程对应的MPL验证流程中正常通过?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 12:15:01