Help me in solving TWOSTR problem

My issue

Whats the mistake in my current code…can anyone explain

My code

#include <bits/stdc++.h>
using namespace std;

int main() {
    int T;
    string X,Y;
    cin >>T;while(T--){
       
        cin>>X;
        cin>>Y;
        int length=X.length();
        
        for(int i=0;i<length;i++)
        {
            if(X[i]=='?'|| Y[i]=='?' )
           {
              
              cout<<"Yes\n";
               break;
            }
            else if(X[i]==Y[i]){
              cout<<"Yes\n";
                break;
            }
            else if(X[i]!=Y[i]){
             cout<<"No\n";
                break;
            }
        }
        
    }
	return 0;

}

Learning course: Strings using C++
Problem Link: Chef and the Wildcard Matching Practice Problem in - CodeChef

@code_2004
u have done logical mistake , I have corrected it in your code.

#include <bits/stdc++.h>
using namespace std;

int main() {
    int T;
    string X,Y;
    cin >>T;while(T--){
       
        cin>>X;
        cin>>Y;
        int length=X.length();
        int tm=0;
        for(int i=0;i<length;i++)
        {
            if(X[i]!='?'&&Y[i]!='?')
            {
                if(X[i]!=Y[i])
                {
                    tm=1;
                    break;
                }
            }
        }
        if(tm)
        cout<<"No";
        else
        cout<<"Yes";
        cout<<endl;
        
    }
	return 0;

}