Doubt reg Delhi's Odd Even

What’s wrong in my code ?
#include
using namespace std;
int main() {
long long int n;
cin>>n;
while(n–){
string str;
cin>>str;
long long int se=0,so=0;
for(long long int i=0;i<str.length();i++){
if(str[i]%2==0){
se=se+i;
}
if(str[i]%2!=0){
so=so+i;
}
}

if(se%4==0 || so%3==0){
	cout<<"Yes"<<endl;

}

else  
{
	cout<<"No"<<endl;

}
}
return 0;

}

hey @priyanka_20
correction here is

if((str[i]-‘0’)%2==0){
se=se+(str[i]-‘0’);
}
if((str[i]-‘0’)%2!=0){
so=so+(str[i]-‘0’);
}

str[i] is digit as a char to convert it to int we do str[i]-‘0’