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> > strxfrm

strxfrm() fonksiyonu

Bildirim

size_t strxfrm(char *dest, const char *src, size_t n);

size_t strxfrm(char *restrict dest, const char *restrict src, size_t n); (C99)

Açıklama

Src parametresi ile gösterilen ve boş bir karakter ('\0') ile sonlandırılmış karakter dizisini yerel ayarlara göre çevirir ve n parametre değeri kadar ilk karakteri dest parametresine kopyalar. Src karakter dizisinin karakter sayısını geri döndürür.

Dest parametresi için NULL bir işaretçi ve n parametresi için 0 değeri verildiğinde, sadece çevrilen karakterlerin uzunluğu elde edilir.

Eğer dest karakter dizisi yeteri kadar büyük değilse ve dest ve src parametreleri çakışırsa sonuç belirsiz olur.

Eğer n parametre değeri 0 olursa, dest parametresine NULL bir işaretçi değeri verilebilir.

Parametreler

dest: Çevrilen karakter dizisinin yazılacağı diziyi gösteren bir işaretçidir.

src: Çevrilecek olan boş bir karakter ('\0') ile sonlandırılmış bir karakter dizisini gösteren bir işaretçidir.

n: Yazılacak maksimum karakter sayısıdır.

Dönüş değeri

Çevrilen karakter dizisinin, sonlandırıcı boş karakter hariç, boyutunu geri döndürür.

Örnek


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

int main(void)
{
    const char cdizi1[20] = "Bilgisayar";
    char cdizi2[20];
    int ret;

    ret = strxfrm (cdizi2, cdizi1, 5);
    cdizi2[5]='\0';

    printf("İlk karakter dizisi: %s, çevrilen karakter sayısı: %d\n", cdizi1, ret);
    printf("Elde edilen yeni karakter dizisi: %s", cdizi2);

    return 0;
}


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

İlk karakter dizisi: Bilgisayar, çevrilen karakter sayısı: 10
Elde edilen yeni karakter dizisi: Bilgi

Program bir karakter dizisinin içeriğini strxfrm() fonksiyonu ile yerel ayarlara göre çevirdikten sonra ilk 5 karakterini başka bir karakter dizisine kopyalarak ekrana yazar.

Kaynak kodu

Copyright Public domain


size_t strxfrm(char *dest, const char *src, size_t n)
{
  size_t src_len = strlen(src);

  if(n<src_len)
     strcpy(dest,src);

  return src_len;
}