Menu
CoddyTech

Struct Üyelerine Erişme

Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 41 / 63.

Artık struct değişkenleri oluşturabildiğine göre, bunların içinde saklanan verilerle nasıl çalışacağını öğrenmen gerekiyor. Bir struct değişkeninin tek tek üyelerine erişmenin ve bunları değiştirmenin anahtarı nokta operatörüdür (.).

Yapı üyelerine erişim sözdizimi basittir:

structVariable.memberName

Point struct örneğimizi kullanarak üyelerini hem okuyabilir hem de yazabilirsiniz:

struct Point p1;

// struct üyelerine değer yazma
p1.x = 10;
p1.y = 20;

// struct üyelerinden değer okuma
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

Nokta operatörü, diğer herhangi bir değişkene erişmekle tamamen aynı şekilde çalışır; onu atamalarda, aritmetik işlemlerde, işlev çağrılarında veya o türden normal bir değişkeni kullanacağın her yerde kullanabilirsin. Her üye, tanımlandığı türden bağımsız bir değişken gibi davranır ve struct verilerini düzenli ve sezgisel bir şekilde işlemeni sağlar.

challenge icon

Görev

Kolay

Nokta operatörünü kullanarak struct üyelerine erişmeyi ve onları değiştirmeyi gösteren bir C programı oluştur. Programın şunları yapmalı:

  1. Aşağıdaki üyelere sahip, Car adında bir struct tanımla:
    • Üretim yılını saklamak için year adında bir tamsayı
    • Aracın markasını saklamak için 20 elemanlı brand adında bir karakter dizisi
    • Mevcut kilometreyi saklamak için mileage adında bir tamsayı
    • Aracın fiyatını saklamak için price adında bir kayan noktalı sayı
  2. myCar adında bir Car değişkeni oluştur
  3. Aşağıdaki girdi değerlerini oku ve nokta operatörünü kullanarak struct üyelerine ata:
    • Yıl için bir tamsayı oku ve myCar.year değişkenine ata
    • Marka için bir metin oku ve strcpy() ile myCar.brand içine kopyala (bir diziye = ile atama yapılamaz)
    • Kilometre için bir tamsayı oku ve myCar.mileage değişkenine ata
    • Fiyat için bir kayan noktalı sayı oku ve myCar.price değişkenine ata
  4. Tüm değerleri okuduktan sonra aşağıdaki işlemleri gerçekleştir:
    • myCar.mileage += 1000; kullanarak kilometreyi 1000 artır
    • myCar.price -= 500.0; kullanarak fiyatı 500.0 azalt
  5. Her üyeye erişmek için nokta operatörünü kullanarak araç bilgilerini tam olarak şu biçimde yazdır:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Bu alıştırma, struct üyelerini hem okumak hem de yazmak için nokta operatörünü anladığını ölçer. Struct üyelerine değer atama, bu değerler üzerinde aritmetik işlemler gerçekleştirme ve çıktı için bu üyelere erişme pratiği yapacaksın.

Örneğin, girdi şu şekildeyse:

2020
Toyota
50000
25000.50

Çıktın şu şekilde olmalı:

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

Kendin dene

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

// TODO: Car struct'ını burada tanımlayın

int main() {
    // TODO: myCar adlı bir Car değişkeni oluşturun
    
    // Giriş değerlerini okuyun
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Giriş değerlerini nokta operatörünü kullanarak struct üyelerine atayın
    
    // TODO: mileage ve price değerlerini belirtildiği gibi değiştirin
    
    // TODO: Araba bilgilerini nokta operatörünü kullanarak yazdırın
    printf("Car Details:\n");
    // Year, Brand, Mileage ve Price değerlerini burada yazdırın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi