SORU
4 Kasım 2011, Cuma


Nasıl düzgün C dizeleri?

Bir kullanıcı tekrar programa çıkmadan türleri kadar sözcük ya da karakter girin, saklayın ve yazdırın izin için bir program yapmaya çalışıyorum. Benim kod bu gibi görünüyor:

#include <stdio.h>

int main()
{
    char input[40];
    char check[40];
    int i=0;
    printf("Hello!\nPlease enter a word or character:\n");
    gets(input);
    printf("I will now repeat this until you type it back to me.\n");

    while (check != input)
    {
        printf("%s\n", input);
        gets(check); 
    }

    printf("Good bye!");


    return 0;
}

Sorun Kullanıcı (Kontrol) giriş orijinal (giriş) maçlar bile giriş dizesi, baskı almaya devam ediyorum. Yanlış iki karşılaştırma mıyım?

CEVAP
4 Kasım 2011, Cuma


(Yararlı) dizeleri != kullanarak kıyaslayamazsın veya ==, strcmp kullanmanız gerekir:

while (strcmp(check,input) != 0)

Bunun nedeni != == sadece bu dizeleri taban adresleri karşılaştırın. Kendilerini dizeleri içeriğini değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014