C programlama dilinde iki dize nasıl karşılaştırılır

Yazar: William Ramirez
Yaratılış Tarihi: 18 Eylül 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
C Programlama 2, Yazım Kuralları ve İşlemler
Video: C Programlama 2, Yazım Kuralları ve İşlemler

İçerik

Hangi dizenin daha fazla karakter içerdiğini bulmak için dize uzunluklarını karşılaştırmak C kodunda oldukça yaygındır. Bu, verileri sıralamak için kullanışlıdır. Dizeleri karşılaştırmak için özel bir işlev gereklidir - kullanmayın != veya ==.

adımlar

  1. 1 C programlama dili, dize uzunluklarını karşılaştırmak için kullanabileceğiniz iki işlev içerir. Bu işlevlerin her ikisi de kütüphaneye dahil edilmiştir. dize.h>.
    • strcmp () - bu işlev iki dizeyi karşılaştırır ve karakter sayısındaki farkı döndürür.
    • strncmp () - bu işlev aynı strcmp () bunun dışında ilk n karakterler. Taşma hatalarını önlediği için daha güvenli kabul edilir.
  2. 2 Programı gerekli kütüphanelerle başlatın. kütüphanelere ihtiyacınız olacak stdio.h> ve dize.h>özel programınız için gereken diğer kitaplıkların yanı sıra.

    #include stdio.h> #include string.h>

  3. 3 işlevi girin int. İki dizenin uzunluğunu karşılaştırmanın bir sonucu olarak bir tamsayı döndürür.

    #include stdio.h> #include string.h> int ana () {}

  4. 4 Karşılaştırmak istediğiniz iki diziyi belirleyin. Örneğimizde, iki tür diziyi karşılaştıralım karakter... Ayrıca dönüş değerini bir tamsayı olarak tanımlayın.

    #include stdio.h> #include string.h> int ana () {char * str1 = "elma"; char * str2 = "turuncu"; int ret; }

  5. 5 Bir karşılaştırma işlevi girin. Örneğimizde fonksiyonu kullanacağız. strncmp ()... İçinde ölçülen karakter sayısını ayarlamanız gerekir.

    #include stdio.h> #include string.h> int ana () {char * str1 = "elma"; char * str2 = "turuncu"; int ret; ret = strncmp (str1, str2, 8); / * 8 karaktere kadar iki dizeyi karşılaştırır * /}

  6. 6 Koşullu bir ifade girin Eğer... Başka. Hangi satırın daha uzun olduğunu göstermek için gereklidir. İşlev strncmp () numarayı geri verecek 0dizelerin uzunlukları aynıysa, str1 daha uzunsa pozitif bir sayı ve str2 daha uzunsa negatif bir sayı.

    #include stdio.h> #include string.h> int ana () {char * str1 = "elma"; char * str2 = "turuncu"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 daha uzun"); } else if (ret 0) {printf ("str2 daha uzundur"); } else {printf ("Satır uzunlukları eşittir"); } dönüş (0); }

Uyarılar

  • Dizelerin uzunlukları eşitse, 0 değerinin döndürüleceğini unutmayın.Bu, 0 da YANLIŞ olduğundan kafa karıştırıcı olabilir.