葛成功之路 2019-11-26 14:43 采纳率: 87.5%
浏览 171
已采纳

请问关于字符串变换的代码哪里出错导致输出原输入内容?

假定输入的字符串中只包含字母和 * 号。除了字符串前导的 * 号之外,将串中其他 * 号全部删除。 例如,若字符串中的内容为 ****A*BC*DEF*G******* , 删除后,字符串中的内容则应当是 ****ABCDEFG 。
输入的字符串中只包含字母和 * 号的字符串,长度不超过 10000
#include
#define N 10000
int main ()
{
int i=0,k;
char a[N];
gets(a);
while(a[i]!='*')
{
i++;
k=i;
a[i]=a[k];
}
for(i=0;a[k]!=0;i++,k++)
a[i]=a[k];
a[i]='\0';
printf("%s\n",a);
return 0;
}

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2019-11-26 15:45
    关注
    一开始程序没进你的while就往下走了。
    while(a[i]!='*')
    {
    i++;
    k=i;
    a[i]=a[k];
    }
    
    #include <stdio.h>
    #include<string.h>
    
    #define N 10000
    int main ()
    {
        int i=0,k=0,b=0;
        char a[N]={},res[N]={};
        gets(a);
        while (a[i]!=0) {
            if(a[i] == '*')
            {
                if(b == 0)
                    res[k++] = a[i];
            }
            else{
                res[k++] = a[i];
                b = 1;
            }
            i++;
        }
        res[k]='\0';
        printf("%s\n",res);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能