Dize uzunluklarını karşılaştırmak, C programlamada yaygın olarak kullanılan bir işlevdir, çünkü size hangi dizenin daha fazla karaktere sahip olduğunu söyleyebilir. Bu işlev, verileri sıralamada çok kullanışlıdır. Dizeleri karşılaştırmak özel bir işlev gerektirir; != veya == kullanmayın.
Adım
Adım 1. C dilinde dizeleri karşılaştırmak için kullanabileceğiniz 2 tür işlev vardır
Bu işlevlerin her ikisi de kütüphaneye dahil edilmiştir.
- strcmp(): Bu işlev iki dizeyi karşılaştırır ve aralarındaki karakter sayısını karşılaştırmanın sonucunu döndürür.
- strncmp(): Bu işlev, dizedeki ilk n} karakteri karşılaştırması dışında strcmp() ile aynıdır. Bu fonksiyon, programın aşırı yüklenme nedeniyle durmasını engellediği için daha güvenli kabul edilir.
Adım 2. Programı ihtiyacınız olan kütüphanelerle çalıştırın
Belirli bir program için ihtiyaç duyduğunuz diğer kitaplıklarla birlikte and öğesini çalıştırmanızı öneririz.
#include #include
Adım 3. Bir işlevi çalıştırın
int. Bu, bu işlevi öğrenmenin en kolay yoludur, çünkü iki dizedeki karakter sayısının karşılaştırmasının tamsayı değerini döndürür.
#include #include int main() { }
Adım 4. Karşılaştırmak istediğiniz iki diziyi tanımlayın
Örneğin, daha önce tanımlanmış 2 karakter dizili char verisini karşılaştıracağız. Ayrıca bu işlev tarafından döndürülen değeri tamsayı veri tipine sahip olacak şekilde tanımlayabilirsiniz.
#include #include int main() { char *str1 = "elma"; karakter *str2 = "turuncu"; int ret; }
Adım 5. Karşılaştırma işlevi ekleyin
Bu iki diziyi tanımladıktan sonra bir karşılaştırma işlevi ekleyebilirsiniz. strncmp() kullanacağız, bu yüzden fonksiyonda ölçülecek karakter sayısının ayarlandığından emin olmamız gerekecek.
#include #include int main() { char *str1 = "elma"; karakter *str2 = "turuncu"; int ret; ret = strncmp(str1, str2, 6); /*Bu fonksiyon 6 karakterden oluşan hem ''dize''yi karşılaştırır */ }
Adım 6. İfadeleri kullanın
If…Else karşılaştırmayı yapmak için. Programınıza bir işlev ekledikten sonra, hangi dizenin daha fazla karaktere sahip olduğunu görüntülemek için bir ifade kullanabilirsiniz. strncmp(), dizeler aynı sayıda karaktere sahipse 0, str1 daha uzunsa pozitif bir sayı ve str2 daha uzunsa negatif bir sayı döndürür.
#include #include int main() { char *str1 = "elma"; karakter *str2 = "turuncu"; int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 daha uzundur"); } else if(ret < 0) { printf("str2 daha uzundur"); } else { printf("İki karakter dizisi de aynı uzunluktadır"); } dönüş(0); }