下列哪个是 C++ 语言中用于获取字符串长度的函数( )
这题考字符串长度函数的区分。拿到题先分清是C语言字符串还是C++string对象,题干特意强调‘函数’二字,直接排除了成员函数length(),剩下的就靠记忆库函数名了。
学生最容易把C++的string.length()当成独立函数选A,或者被Python的len()、Java的getLength()带偏。题干里‘函数’是关键词,成员函数不叫函数,所以A必错;B和C在C++标准库里压根没有,属于纯干扰项。
【考点】字符串处理|C函数与C++库函数区分
GESP三级C++组‘编程基础’模块,核心就是让学生分清C语言标准库函数和C++标准库成员函数的边界。命题人卡住的是学生‘看到字符串就想到C++的length()'——用C++思维套用C考题,是三级最容易栽跟头的地方。
1. 考纲定位:题干问‘C++语言中用于获取字符串长度的函数’,注意‘函数’二字。在C++里,std::string类型有成员函数length(),但它属于对象方法,不是独立函数;而C语言字符串(char数组)求长度用的是库函数strlen(),这才是题干要的‘函数’。
2. 解题思维:拿到题先判断对象类型。若是C++ std::string,用length();若是C语言字符串,用strlen()。题干没提对象,只说‘C++语言中’,结合‘函数’限定,只能选独立的库函数。B项len()在C++里不存在,是Python写法;C项getLength()是Java风格,C++不用;D项strlen()来自C标准库<cstring>,是真正的独立函数。
3. 陷阱拆解:最阴险的是A——考生容易把‘成员函数’和‘函数’混为一谈,题干特意用‘函数’二字就是筛掉这种不严谨的人。很多学生看到‘length’就本能选A,完全忽略语法层级差异。
4. 反命题思维:如果题干改成‘C++中std::string对象的成员函数’,答案就变成A;如果改成‘C语言字符串长度函数’,答案还是D。刷到这类题先问:题目说的是‘函数’还是‘成员函数’,说的是C还是C++——边界条件一换,答案全变。
5. 考频趋势:字符串相关题目在题库里非常密集,共考过99题,覆盖10个考试级别(2008-2026)。逐年分布显示2025年爆发式增长(32题),2026年仍保持高位(19题),说明命题组持续重视字符串基础。分赛事看,GESP三级考了14题,占比不低,且三级属于入门阶段,这类概念辨析题是必考点。
6. 预测:基于2025-2026年字符串题的高频趋势,未来可能继续围绕‘字符串长度、拼接、查找’等基础操作出题,但形式会更灵活,比如结合getline、cin>>混合输入场景,或者在代码片段中故意混入length()和strlen(),考验语法识别能力。暂无足够依据预测具体年份题型变化,但字符串基础的重要性不会降低。
综上,正确答案是D strlen(),记住‘函数’二字是关键,别被C++的length()带偏。