Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <string.h> > strpbrk

strpbrk() fonksiyonu

Bildirim

char* strpbrk(const char *str1, const char *str2);

Açıklama

Str2 parametresi ile gösterilen karakter dizisinde yer alan karakterlerden herhangi birinin str1 parametresi ile gösterilen karakter dizisi içinde bulunduğu yerin bellek adresini geri döndürür.

Eğer aranan karakterlerden hiç biri bulunamazsa NULL bir işaretçi geri döndürür.

Str1 veya str2 parametresi boş bir karakterle sonlandırılmış bir karakter dizisini gösteren bir işaretçi değilse, sonuç belirsiz olabilir.

Parametreler

str1: Arama yapılacak karakter dizisinin başlangıcını gösteren bir işaretçidir.

str2: Aranacak karakterleri içeren karakter dizisinin başlangıcını gösteren bir işaretçidir.

Dönüş değeri

Str2 parametresi ile gösterilen karakter dizisinde yer alan karakterlerden herhangi birinin str1 parametresindeki karakter dizisi içinde bulunduğu yerin bellek adresini geri döndürür.

Örnek


#include <stdio.h>
#include <string.h>

int main(void)
{
    const char *cp1 = "Bilgisayar";
    const char *cp2 = "esy";
    char *ret = strpbrk(cp1, cp2);

    printf("%s karakter dizisinde bulunan ilk karakterin değeri: %c, adresi: %p, endeksi: %d\n", cp1, *ret, ret, ret-cp1);

    return 0;
}


Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar.

Bilgisayar karakter dizisinde bulunan ilk karakterin değeri: s, adresi: 00403029, endeksi: 5

Program strpbrk() fonksiyonu ile bir karakter dizisi içindeki karakterlerin herhangi birinin diğer karakter dizisi içinde bulunduğu ilk yerin bellek adresini geri döndürür. Bu adres değerini kullanarak bulunan karakterin değerini, bellek adresini ve indeksini ekrana yazar.

Kaynak kodu

Copyright Public domain


char* strpbrk(const char *str1, const char *str2)
{
  while(*str1) {
    if(strchr(str2, *str1++))
       return (char*)--str1;
  }  
  
  return 0;
}