C语言如何实现字符串字符替换并正确输出修改后的新字符
C密码字符替换代码修复方案
存在的问题
- 输出顺序错误:循环中先打印当前字符,再执行替换逻辑,打印的都是修改前的原始内容,无法看到替换效果
i字符判断语法错误:if(originalPassword[i]=='i');末尾多了多余分号,导致if判断完全失效,赋值'1'的代码会无条件执行- 缺少最终结果输出:循环结束后没有打印完整的修改后字符串,无法确认最终替换效果
- 存在冗余变量:定义了
newPassword数组但全程未使用,可删除避免编译警告
修改步骤
- 删掉
if(originalPassword[i]=='i')后面的分号,恢复判断逻辑 - 调整执行顺序:先完成所有字符替换操作,再统一输出修改后的结果
- 删除无用的
newPassword变量定义,补充最终结果输出逻辑
修正后完整代码
#include <stdio.h> #include <string.h> int main() { char originalPassword[50]; int length; printf("请输入你当前的密码:\n"); scanf("%s", originalPassword); length = strlen(originalPassword); // 执行字符替换逻辑 for(int i = 0; i < length; i++) { if(originalPassword[i]=='i') { originalPassword[i] = '1'; } if(originalPassword[i]=='a') { originalPassword[i]='@'; } } // 输出修改后的完整结果 printf("修改后的密码为:%s\n", originalPassword); return 0; }
内容的提问来源于stack exchange,提问作者DeeM4RKO
相关产品推荐
相关产品推荐

