注册 登录
编程论坛 C语言论坛

求助:如何用两个字符替换一个字符?

wangxinbozj 发布于 2019-12-01 21:30, 1604 次点击
如下代码中第一个if语句中用两个感叹号替换原输入字符中的一个感叹号,过于复杂,如何简化编程?
程序代码:

#define NUM 500
int main(void)
{
    int i, j, n;

    char ch[NUM*2];
    i=j=0;
   
    while ((ch[i]=getchar())!='#')   //#结束
    {
        if (ch[i] == '!')       //用两个感叹号代替一个感叹号
        {
            ch[i] = '!';
            for(n=NUM;n>=i;n--)
                ch[n+1] =ch[n];
            ch[i+1]= '!';
            putchar(ch[i]);
            putchar(ch[i+1]);
            j++;            
        }
        else if (ch[i] == '.')    //用一个感叹号代替句号
        {
            ch[i] = '!';
            putchar(ch[i]);
            j++;
        }
        else
            putchar(ch[i]);        
    }   
    printf("\n%5d\n", j);          //替换了几次
    system("pause");
    return 0;
}

只有本站会员才能查看附件,请 登录



[此贴子已经被作者于2019-12-1 21:55编辑过]

2 回复
#2
纯蓝之刃2019-12-01 21:56
程序代码:
#include <stdio.h>

int main(void)
{
    char ch;
    int j=0;

    while((ch=getchar())!='#')   //#结束
    {
        switch(ch)
        {
            case '.':putchar('!');j++;break;
            case '!':putchar(ch);j++;
            default:putchar(ch);break;
        }
    }

    printf("\n%5d\n", j);          //替换了几次

    return 0;
}
#3
wangxinbozj2019-12-01 22:03
回复 2楼 纯蓝之刃
谢谢!
1