На всё отвечает NO | C++

На всё отвечает NO, а должна найти слово "nozm" или "NOZM" и сказать YES - если есть или NO - если нет

Код:

#include <iostream>
#include <cstring>
using namespace std;
void himoji(char* ar){
int o=strlen(ar);
int k=0;
for(int i=0; i<o; i++){
  if((ar[i]=='N' || ar[i]=='n')&&(ar[i+1]=='O' || ar[i+1]=='o')&&(ar[i+2]=='Z' || ar[i+2]=='z')&&(ar[i+3]=='M' || ar[i+3]=='m')){
  k=1;
  }
  else {
   k=0;
  }
}
if (k==1 && k<4){
  cout<<"YES";
}
else {
  cout<<"NO";
}
}
int main() {
char *ar = new char[1000];
cin>>ar;
himoji(ar);
}

пример: aaanozmaaaa - YES
aaaNOZMaa -YES
aaaNOMZaaa -NO aaanokmaaa - NO


Ответы (1 шт):

Автор решения: Harry

Ладно, будем считать, что ни toupper, ни strstr недоступны...

Первое -

for(int i=0; i< o - 3; i++)   // -3 - чтоб не вылазить за пределы строки!!!

Второе -

    .... (ar[i+3]=='M' || ar[i+3]=='m'))
    {
        k = 1;
        break;
    }

После чего просто

if (k)
{
    cout<<"YES";
}
else
{
    cout<<"NO";
}
→ Ссылка