C ++ strxfrm () - C ++ Standart Kitaplığı

C ++ 'daki strxfrm () işlevi, belirli bir boş sonlandırılmış bayt dizesini uygulama tanımlı bir biçime dönüştürür.

Strxfrm () işlevi, dizgiyi, dönüştürülmüş iki dizeyi strcmp () işlevini kullanarak karşılaştırmak, geçerli C yerel ayarında strcoll () işlevini kullanarak orijinal dizeleri karşılaştırmakla aynı sonucu verecek şekilde dönüştürür.

Örneğin, x ve y iki dizedir. a ve b, sırasıyla x ve y'nin strxfrm işlevi kullanılarak dönüştürülmesiyle oluşturulan iki dizedir. Sonra strcmp (a, b) çağrısı strcoll (x, y) çağrısı ile aynıdır.

strxfrm () prototipi

 size_t strxfrm (karakter * hedef, sabit karakter * src, boyut_t sayısı);

Strxfrm () işlevi, src ile gösterilen dizenin ilk count karakterlerini bir gerçekleme tanımlı forma dönüştürür ve sonuç, dest ile gösterilen bellek konumunda saklanır.

Bu işlevin davranışı şu durumlarda tanımsızdır:

  • dest boyutu gerekli boyuttan daha küçük.
  • dest ve src örtüşüyor.

Başlık dosyasında "> başlık dosyasında tanımlanır.

strxfrm () Parametreler

  • dest: dönüştürülen dizenin depolandığı diziye işaretçi.
  • src: dönüştürülecek boş sonlandırılmış dizgeye işaretçi.
  • sayı: dönüştürülecek maksimum karakter sayısı.

strxfrm () Dönüş değeri

Strxfrm () işlevi, sonlandırıcı boş karakter ' 0' hariç, dönüştürülen karakter sayısını döndürür.

Örnek: strxfrm () işlevi nasıl çalışır?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )

Programı çalıştırdığınızda, çıktı:

 strcoll -1 döndürdü Dönüşümden önce strcmp 1 döndürdü Dönüşümden sonra strcmp -1 döndürdü

Ilginç makaleler...