Dize uzunluğunu karşılaştırmak, hangi dizenin daha fazla karakter içerdiğini görmenize izin verdiği için C programlamada yaygın bir işlevdir. Bu, verileri sıralamak için çok kullanışlıdır. Dizeleri karşılaştırmak özel bir işlev gerektirir; != veya == kullanmayın.
adımlar
Adım 1. C'deki dizeleri karşılaştırmanıza izin veren iki 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 karakter sayısındaki karşılaştırmalı farkı döndürür.
- strncmp() - Bu, ilk n karakteri karşılaştırması dışında strcmp() ile aynıdır. Kazaların taşmasını önlemeye yardımcı olduğu için daha güvenli olarak kabul edilir.
Adım 2. Programı gerekli kitaplıklarınızla başlatın
Özel programınız için ihtiyaç duyabileceğiniz diğerleriyle birlikte hem kütüphaneleri hem de kütüphaneleri isteyeceksiniz.
#include #include
Adım 3. Bir
int işlev.
Bu, iki dizenin uzunluğunu karşılaştıran bir tamsayı döndüreceğinden, bu işlevi öğrenmenin en kolay yoludur.
#include #include int ana () { }
Adım 4. Karşılaştırmak istediğiniz iki diziyi tanımlayın
Bu örnek için, önceden tanımlanmış iki karakter dizisini karşılaştıracağız. Ayrıca dönüş değerini bir tamsayı olarak tanımlamak isteyeceksiniz.
#include #include int ana () { char *str1 = "elma"; karakter *str2 = "turuncu"; int ret; }
Adım 5. Karşılaştırma işlevini ekleyin
Artık iki dizinizi tanımladığınıza göre, karşılaştırma işlevini ekleyebilirsiniz. strncmp() kullanacağız, bu yüzden ölçülecek karakter sayısının fonksiyonda ayarlandığından emin olmamız gerekiyor.
#include #include int ana () { char *str1 = "elma"; karakter *str2 = "turuncu"; int ret; ret = strncmp(str1, str2, 6); /*Bu, en fazla 6 karakter uzunluğundaki iki dizeyi karşılaştıracaktır */ }
Adım 6. Bir
Eğer…Başka karşılaştırma yapmak için ifade.
Artık işlevi yerine getirdiğinize göre, hangi dizenin daha uzun olduğunu görüntülemek için If…Else ifadesini kullanabilirsiniz. strncmp(), dizeler aynı uzunluktaysa 0, str1 daha büyükse pozitif bir sayı ve str2 daha büyükse negatif bir sayı döndürür.
#include #include int ana () { char *str1 = "elma"; karakter *str2 = "turuncu"; int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 daha uzun"); } else if(ret < 0) { printf("str2 daha uzundur"); } else { printf("İki string eşittir"); } dönüş(0); }