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

问题:
输入一个字符串,以回车结束(字符串长度不超过 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;
}


#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;
}

img


这里错了,比较不对等

[Warning] comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long long unsigned int'} [-Wsign-compare]

 [警告]比较不同符号的整型表达式:'int''std::__cxx11::basic_string&lt;char&gt;::size_type' {aka 'long long unsigned int'} [-Wsign-compare] 

希望对题主有所帮助,望采纳!!