标题:求助:如何用两个字符替换一个字符?
只看楼主
wangxinbozj
Rank: 2
等 级:论坛游民
威 望:2
帖 子:16
专家分:18
注 册:2019-12-1
结帖率:100%
已结贴  问题点数:20 回复次数:2 
求助:如何用两个字符替换一个字符?
如下代码中第一个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编辑过]

搜索更多相关主题的帖子: 替换 putchar int 字符 NUM int 替换 NUM putchar 字符 
2019-12-01 21:30
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:20 
程序代码:
#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;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-01 21:56
wangxinbozj
Rank: 2
等 级:论坛游民
威 望:2
帖 子:16
专家分:18
注 册:2019-12-1
得分:0 
回复 2楼 纯蓝之刃
谢谢!
2019-12-01 22:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498166-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018952 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved