You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言如何实现字符串字符替换并正确输出修改后的新字符

C密码字符替换代码修复方案

存在的问题

  • 输出顺序错误:循环中先打印当前字符,再执行替换逻辑,打印的都是修改前的原始内容,无法看到替换效果
  • i字符判断语法错误:if(originalPassword[i]=='i'); 末尾多了多余分号,导致if判断完全失效,赋值'1'的代码会无条件执行
  • 缺少最终结果输出:循环结束后没有打印完整的修改后字符串,无法确认最终替换效果
  • 存在冗余变量:定义了newPassword数组但全程未使用,可删除避免编译警告

修改步骤

  1. 删掉if(originalPassword[i]=='i')后面的分号,恢复判断逻辑
  2. 调整执行顺序:先完成所有字符替换操作,再统一输出修改后的结果
  3. 删除无用的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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:57:04