Kullanıcının girdiği dizeye bağlı olarak farklı işlevleri çağırmak için fgets kullanmaya çalışıyorum. Biliyorum, daha sonra strtok kullanmam gerekecek, çünkü "12 yükü" için boşluk olacak. Ama şimdi, girdi olan dizeleri karşılaştırmak için strcmp kullanma konusunda kafam karıştı. Ben strcmp bu gibi kullanılabilir biliyorum:strcmp'i bir boole olarak kullanabilir miyim?
int check;
char string[10] = "test";
check = strcmp(string, "test");
// Check will be 0 if true
if (check == 0)
{
printf("same string\n");
}
else
{
printf("not the same\n");
}
doğru ve yanlış gibi bir mantıksal değerdir olabilir mi? "Test" aslında "test" ise, boole değeri true olur, o zaman boolean değerini if
ifadelerinde kullanacağım. Her iki dizeleri aynı olup olmadığını
yazma anlamına geliyordu. 'check' bir tamsayıdır ve başka bir tam sayı ile karşılaştırır. – Barmar
Evet, ancak boolean bağlamında strcmp' dönüş değeri true (sıfır olmayan değer) olur, eğer dizeler ** farklıysa ** ve false değilse… === 0'. –
Eğer FALSE sadece mantık ters olacak, ama fonksiyon mutlaka '1', sadece pozitif değer döndürmez, bu nedenle (eğer' kullanamaz 'boole değerleri' TRUE karşı test etmek ve isterseniz strcmp doğru (dize, "test") ==) ' –