欣坚强 2022-01-07 11:40 采纳率: 57.4%
浏览 37
已结题

为什么这样写是错误的啊?

问题:
输入一个字符串,以回车结束(字符串长度不超过 100)。

该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。

现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

代码:

#include<iostream>

using namespace std;

int main()
{
    string s,a,b;
    
    getline(cin,s);
    cin>>a>>b;
    
    for(int i=0;s[i];i++)
    {   
        if(s[i]==a[0])
        {
            int j;
            for( j=1;a[j];j++,i++)
                if(s[i]!=a[j]) break;
            if(j==a.size()) cout<<b; 
        }
        else
            cout<<s[i];
    }
    
    return 0;
}

  • 写回答

2条回答 默认 最新

  • 南七灵 2022-01-07 12:15
    关注
    
    #include<iostream>
    using namespace std;
    string s[105], m, d;
    char a;
    int main(){
        int i = 0, k = 0;
        a = ' ';
        while(a == ' '){
            cin >> s[i];
            a = getchar();
            i++;
            k++;
        }
        cin >> m >> d;
        for(int j = 0; j < k; j++){
            if(s[j] == m){
                s[j] = d;
            }
        }
        for(int j = 0; j < k; j++){
            cout << s[j] << " ";
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月8日
  • 已采纳回答 1月8日
  • 创建了问题 1月7日