Language: C++

#include <bits/stdc++.h>
#define ll long long
#define mod 1000000007
#define upperlimit 1000100
#define INF 1000000100
#define INFL 1000000000000000100
#define eps 1e-8
#define endl '\n'
#define sd(n) scanf("%d",&n)
#define slld(n) scanf("%lld",&n)
#define pd(n) printf("%d",n)
#define plld(n) printf("%lld",n)
#define pds(n) printf("%d ",n)
#define pllds(n) printf("%lld ",n)
#define pdn(n) printf("%d\n",n)
#define plldn(n) printf("%lld\n",n)
#define REP(i,a,b) for(i=a;i<=b;i++)
#define mp make_pair
#define pb push_back
#define pcc pair<char,char>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define vi vector<int>
#define vl vector<ll>
#define vii vector<pii>
#define vll vector<pll>
#define tr(container,it) for(typeof(container.begin()) it=container.begin();it!=container.end();it++)
#define F first
#define S second
#define clr(a) memset(a,0,sizeof(a))
using namespace std;
 
ll gcd(ll n1,ll n2){
    if(!n1)return n2;
    if(!n2)return n1;
    if(n1%n2==0)return n2;
    return gcd(n2,n1%n2);
}
ll powmod(ll base,ll exponent){
    base%=mod;
    ll ans=1;
    while(exponent){
        if(exponent&1)ans=(ans*base)%mod;
        base=(base*base)%mod;
        exponent/=2;
    }
    ans%=mod;
    return ans;
}
int main()
{
    string s,t;
    cin>>s>>t;
        int n,m;
        n=s.size();
        m=t.size();
        if(n<m){ cout<<" UNRESTORABLE";
                return 0;
        }
        else{  
                 int r; 
             for(int i=0;i<n-m+1;i++){
                  r=1;
                  for(int j=0;j<m;j++){ 
                         if(s[i+j]==t[j] || !strcmp(s[i+j], "?") );
                         else r=0;  
                  }
                  if(r==1){
                         for(int k=0;k<m;k++){
                                s[i+k]=t[k];
                         } 
                         for(int l=0 ; l<n;l++){
                                 if( !strcmp(s[l],"?") )s[l]="a";
                         }
                         cout<<s;
                         return 0; 
                  }
             }
             if(r==0)cout<<"UNRESTORABLE";
             return 0;
        } 

}


Compiler output:
a.cc: In function 'int main()':
a.cc:65:52: error: invalid conversion from '__gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type' {aka 'char'} to 'const char*' [-fpermissive]
   65 |                          if(s[i+j]==t[j] || !strcmp(s[i+j], "?") );
      |                                              ~~~~~~^~~~~~~~~~~~~
      |                                                    |
      |                                                    __gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type {aka char}
In file included from /usr/include/c++/14/cstring:43,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:121,
                 from a.cc:1:
/usr/include/string.h:156:32: note:   initializing argument 1 of 'int strcmp(const char*, const char*)'
  156 | extern int strcmp (const char *__s1, const char *__s2)
      |                    ~~~~~~~~~~~~^~~~
a.cc:73:45: error: invalid conversion from '__gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type' {aka 'char'} to 'const char*' [-fpermissive]
   73 |                                  if( !strcmp(s[l],"?") )s[l]="a";
      |                                       ~~~~~~^~~~~~~~~~
      |                                             |
      |                                             __gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type {aka char}
/usr/include/string.h:156:32: note:   initializing argument 1 of 'int strcmp(const char*, const char*)'
  156 | extern int strcmp (const char *__s1, const char *__s2)
      |                    ~~~~~~~~~~~~^~~~
a.cc:73:62: error: invalid conversion from 'const char*' to '__gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type' {aka 'char'} [-fpermissive]
   73 |                                  if( !strcmp(s[l],"?") )s[l]="a";
      |                                                              ^~~
      |                                                              |
      |                                                              const char*