如何判断字符串中的字符为数字并替换为空格,现有代码求校验优化
数字替换功能代码修复方案
现有代码问题
你编写的代码存在两处核心语法/逻辑错误:
isdigit(message[i]);末尾多余的分号会直接终结该判断语句,后续大括号内的代码会无条件执行,完全失去判断作用- 未将
isdigit()的布尔返回值作为条件判断的依据,逻辑规则完全不生效
修复后代码
正确的else分支写法如下:
else { // 判断当前字符是否为数字,是则替换为空格 if (isdigit(message[i])) { message[i] = ' '; } }
如果你希望简化写法,也可以将条件合并:
else if (isdigit(message[i])) { message[i] = ' '; }
注意事项
- 使用
isdigit()函数需要提前引入<ctype.h>标准头文件,否则编译会出现告警或报错 - 若编译器默认
char为有符号类型,建议判断时写为isdigit((unsigned char)message[i]),避免传入负值触发未定义行为
内容的提问来源于stack exchange,提问作者raz sargsyan
相关产品推荐
相关产品推荐

