C
Ürün ekleme
Sepete ürün ekleyen fonksiyonu yazarsın.
cart_add fonksiyonu
Bu derste cart_add fonksiyonunu yazacağız. Bu fonksiyon sepete yeni bir öğe ekler; cart_size'ı bir artırır.
void cart_add(const char *name, double price, int qty) {
if (cart_size >= MAX_ITEMS) return;
strcpy(cart[cart_size].name, name);
cart[cart_size].price = price;
cart[cart_size].qty = qty;
cart_size++;
}
strcpy dize kopyalar; cart_size sepetteki bir sonraki boş yeri gösterir. Sepet doluysa erken çıkılır. Bu güvenlik denetimi taşmayı önler.
strcpy ile dize kopyalama
C'de dizeleri = ile atayamazsın; strcpy kullanmalısın. strcpy bir dizeyi hedef diziye karakter karakter kopyalar.
char name[32];
strcpy(name, "Elma"); // name artık "Elma"
Bu yüzden cart_add içinde strcpy(cart[cart_size].name, name) kullanıyoruz. string.h başlığında tanımlıdır. Dize taşmasını önlemek için strncpy de tercih edilebilir.
Uygulama İki ürün ekle
cart_add fonksiyonunu yaz: void cart_add(const char *name, double price, int qty). Sepet doluysa (cart_size >= MAX_ITEMS) erken çık. strcpy ile adı kopyala, fiyat ve miktarı ata, cart_size++. main zaten iki ürün ekliyor; sen yalnızca fonksiyonu tamamla. Beklenen çıktı: 2 ürün eklendi.
Örnek çözümü göster
#include <stdio.h>
#include <string.h>
#define MAX_ITEMS 10
struct CartItem {
char name[32];
double price;
int qty;
};
struct CartItem cart[MAX_ITEMS];
int cart_size = 0;
void cart_add(const char *name, double price, int qty) {
if (cart_size >= MAX_ITEMS) return;
strcpy(cart[cart_size].name, name);
cart[cart_size].price = price;
cart[cart_size].qty = qty;
cart_size++;
}
int main(void) {
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
printf("%d ürün eklendi\n", cart_size);
return 0;
}
Kendini test et
-
cart_size'ı artır
void cart_add(const char *name, double price, int qty) {
if (cart_size >= MAX_ITEMS) return;
strcpy(cart[cart_size].name, name);
cart[cart_size].price = price;
cart[cart_size].qty = qty;
____;
}
Cevabı göster
void cart_add(const char *name, double price, int qty) {
if (cart_size >= MAX_ITEMS) return;
strcpy(cart[cart_size].name, name);
cart[cart_size].price = price;
cart[cart_size].qty = qty;
cart_size++;
}
-
cart_add sonunda cart_size ne olur?
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
Cevabı göster
2 — İki ekleme sonrası cart_size = 2 olur.
-
Ekleme parçalarını eşleştir
- strcpy
- Dize kopyalar
- cart_size++
- Sayıyı artırır
- MAX_ITEMS
- Üst sınır
- void cart_add
- Fonksiyon imzası
Sıradaki ders: Toplam hesaplama