strstr fonksiyonu hakkında

Başlatan ArifAhmet, 29 Kasım 2014, 18:07:07

ArifAhmet

Merhabalar,
strstr fonksiyonu dizide bir kelime arayıp, eğer varsa adresi yoksa NULL değer döndürüyor. Fakat önce diziye l+255lr+255r değerini atıyorum ardından bu fonksiyonu kullanıyorum ve sonuç yok.
Kodlar burada;
if(strstr(buff,"l+255lr+255r")!= NULL)ileri();

Kodlar arduino uno üzerinde çalıştırılıyor. sadece tek harfi aratınca ileri fonksiyonuna düşüyor fakat yukarıda verdiğim metini yazınca olmuyor.
Umarım derdimi anlatabilmişimdir.
İyi çalışmalar.
Yaşasın Open Source!

mir_as82

#1
Hocam tek harfi aratinca o harf buff isimli dizinde varsa,  ileri içine girmesi normal.

mesaj birleştirme:: 29 Kasım 2014, 19:21:06

Hocam buff içine ilk değeri "l+255lr+255r" olarak verir misin.
chat buff[] = "l+255lr+255r"; yazar misin.

MrDarK

strstr fonksiyonu array içinde null gördüğü an çıkar. Debug yaparakta görebilirsin, büyük ihtimalle sen daha aradığın kelimeye gelmeden null chara denk geliyorsun. Biraz daha detay vermeni öneririm ve ne üzerinde çalışıyorsan debug yap derim =)
Picproje Eğitim Gönüllüleri ~ MrDarK

mir_as82

Hocam denedim çalışıyor.
Hem harf aramada çalışıyor hem istediğin şeyi buluyor.
int main()
{
   char myBuffer[] = "l+255lr+255r----12345";
   if(strstr(myBuffer,"l+255lr+255r")!= NULL)
      printf("istedigim yere girdi\n");
   else
      printf("istedigim yere girmedi\n");
   return 0;
}

ArifAhmet

Hocam sorunu buldum. buff dizisine strcpy ile değer atıyormuşum. Onu değiştirip strcat yaptım, düzeldi.
Yaşasın Open Source!