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;
}