问题标题: 1089 偷天换日

0
1
已解决
祝明朗
祝明朗
初级光能
初级光能
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define N 3333
char s[N], a[2], b[2];
int main()
{
while(scanf("%s%s%s", s, a, b)!=EOF)
{
int len = strlen(s);
int i;
for(i = 0; i < len; i++) printf("%c", s[i] == a[0] ? b[0] : s[i]);
puts("");
}
return 0;
}
为什么这样写是50分
大神们------思路走起

 


2
已采纳
张庭瑜
张庭瑜
初级守护
初级守护
for(int i=0;i<strlen(a)-1;i++) {
    if(a[i]==ch1) a[i]=ch2;
    cout<<a[i];
}

其实你写的有点复杂了,按顺序输入完字符串需要交换的两个字母(假定a、ch1和ch2)后直接单个输出就可以了。上面的是核心代码(判断输出部分)
 

0
0
陆麟瑞
陆麟瑞
资深天翼
资深天翼
直接判断每个字符是否为要被替换的字符,如果是,输出用于替换的字符。
gets(c);
    cin>>a>>b;
    for(int i=0; i<strlen(c); i++)
    {
        if(c[i]==a) cout<<b;
        else cout<<c[i];
    }
我要回答