İçerik
Dize uzunluğu karşılaştırması, C programlama dilinde yaygın olarak kullanılan bir işlevdir, çünkü hangi dizenin daha fazla karakter içerdiğini bulmanızı sağlar. Bu, verileri sıralamak için çok kullanışlıdır. Dize karşılaştırması özel bir işlev gerektirir; bu yüzden kullanmayın: != veya ==.
Adım atmak
- C'deki dizeleri karşılaştırmanıza izin veren iki işlev vardır. Her ikisi de string.h>kod kitaplığı.
- strcmp () - Bu işlev, iki dizeyi karşılaştırır ve karakter sayısındaki farkı döndürür.
- strncmp () - Bu aynı zamanda strcmp ()bunun ilk olması dışında n karakterleri karşılaştırır. Taşma çökmelerini önlemeye yardımcı olduğu için daha güvenli kabul edilir.
- Programı gerekli kütüphanelerle çalıştırın. Her iki kütüphaneniz de var stdio.h> ve string.h> programınız için ihtiyaç duyabileceğiniz diğer kitaplıklarla birlikte gerekli.
#include stdio.h> [[Resim: C Programlama Adım 1 Sürüm 4.webp'deki İki Dizeyi Karşılaştırın | center]] #include string.h>
- Başla.intişlevi. İki dizenin uzunluğunu karşılaştıran bir tamsayı döndürdüğü için bu işlevi öğrenmenin en kolay yolu budur.
[[Resim: C Programlamadaki İki Dizeyi Karşılaştırın Adım 2 Sürüm 4.webp | center]] #include stdio.h> [[Image: C Programlamadaki İki Dizeyi Karşılaştırın Adım 3 Sürüm 3.webp | center]] #include string. h> int main () {}
- Karşılaştırmak istediğiniz iki dizeye karar verin. Bu örnekte iki veriyi karşılaştırıyoruz kömür Teller. Ayrıca dönüş değerini bir tamsayı olarak belirlemelisiniz.
[[Resim: C Programlamadaki İki Dizeyi Karşılaştırın Adım 4 Sürüm 4.webp | center]] #include stdio.h> [[Resim: C Programlamadaki İki Dizeyi Karşılaştırın Adım 5 Sürüm 4.webp | center]] #include string. h> int main () {char * str1 = "elma"; char * str2 = "turuncu"; int ret;}
- Karşılaştırma işlevini ekleyin. Artık iki dizeyi tanımladığınıza göre, karşılaştırma işlevini ekleyebilirsiniz. Biz gideriz strncmp () bu nedenle, ölçülecek karakter sayısının işlev içinde ayarlandığından emin olmamız gerekir.
[[Resim: C Programlama Adım 6 Sürüm 4.webp'de İki Dizeyi Karşılaştırın | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "turuncu"; int ret; ret = strncmp (str1, str2, 11); / * 11 karakter uzunluğa kadar iki dizeyi karşılaştırır * /}
- Kullanın.If ... Elsekarşılaştırmayı yapmak için. Artık işlevi oluşturduğumuza göre, If ... Else hangi dizenin daha uzun olduğunu belirlemek için. strncmp () verir 0 sonuç olarak, dizeler aynı uzunluktaysa, str1 daha uzunsa pozitif bir sayı ve str2 daha uzunsa negatif bir sayı.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "turuncu"; int ret; ret = strncmp (str1, str2, 11); eğer (ret> 0) {printf ("str1 daha uzun"); } else if (ret 0) {printf ("str2 daha uzun"); } else {printf ("İki dizge aynıdır"); } dönüş (0); }
Uyarılar
- Dizeler eşitse dönüş değerinin 0 olduğunu unutmayın. Bu kafa karıştırıcı olabilir çünkü 0 aynı zamanda YANLIŞ'ın değeridir.