使用C++ isalpha()函数时字母计数异常,初始值为26
问题分析与解决方案
你的问题和isalpha()函数无关,核心原因是计数变量未初始化:
你定义的numbers、letters、other这三个int型变量没有设置初始值,它们会保留内存中的随机垃圾值。字母计数显示从26开始,只是刚好这个变量的初始随机值是26而已。其他统计看似正常,大概率是另外两个变量的随机值碰巧为0,或者测试输入的数字/特殊字符数量刚好覆盖了初始随机值,但本质都是未初始化导致的不确定行为。
修复方法很简单,将三个计数变量初始化为0:
int numbers = 0, letters = 0, other = 0;
这样程序就能正确统计各类字符的数量了。
内容的提问来源于stack exchange,提问作者t4kyon
相关产品推荐
相关产品推荐

