C'de birden çok elemanlı karakter dizisinin elemanlarının ilk harfi nasıl yazdırılır?

EmirArat

Kilopat
Katılım
20 Kasım 2018
Mesajlar
121
Çözümler
1
Arkadaşlar klavyeden girilen 10 tane soyadının ilk harfini . ile yazdırmak istiyorum ama başaramadım. Buraya neyi neden yaptığımı açıklayarak yazacağım. Muhtemelen bilgilerimde eksik ve yanlışlar var. Neyin eksik ya da yanlış olduğunu belirtip doğrusunu söylerseniz sevinirim.

char soyad[10][15] olarak maksimum 15 karakteri olan 10 tane soyadı barındıracak bir dizi oluşturdum.


Kod:
for(i=0;i<10;i++)
               {
                   printf("%s.\n",soyad[0]);
                }

olarak soyad dizisinin i. elemanının ilk harfini(diziye göre 0. elemanını) yazdırmak istedim. Her ne yanlış ise olmadı. Sonra soyad dizisini maksimum 1 elemanlı olarak tanımladım ki dizi içine sadece ilk harf okutulsun ve kısa yoldan istediğimi alabileyim. Bu şekilde de olmadı. Yardımcı olabilecek birisi var mı?
 
Son düzenleme:
C:
//maksimum 15 karakterli 5 tane soyad tutacak liste.
char soyad[5][15] = {"ali", "keskin", "kemal", "demir", "emir"};
for (int i = 0; i < 5; ++i) {
    printf("%c", soyad[i][0]);
}
Bu şekilde olmalı. soyad arrayini sirayla gezip sirayla ilk harfini yazdiriyoruz.
 
Son düzenleme:
C:
//maksimum 15 karakterli 5 tane soyad tutacak liste.
char soyad[5][15] = {"ali", "keskin", "kemal", "demir", "emir"};
for (int i = 0; i < 5; ++i) {
    printf("%c", soyad[i][0]);
}
Bu şekilde olmalı. soyad arrayini sirayla gezip sirayla ilk harfini yazdiriyoruz.
Dizi elemanlarını scanfle kullanıcıdan alıyorum.

Kod:
char soyad[10][15];
    int i;
    for(i=0;i<10;i++)
       {                      
            printf("Soyadi :");
            scanf("%s",&soyad[i]);
       }
             
             
    for(i=0;i<10;i++)
       {
           printf("%s.",soyad[i][0]);
       }

Düzenleme:
Hatayı buldum. Sadece %s yerine %c yapmam gerekiyormuş. 2 günümü buna harcadığım için çıldırabilirim XD

C:
//maksimum 15 karakterli 5 tane soyad tutacak liste.
char soyad[5][15] = {"ali", "keskin", "kemal", "demir", "emir"};
for (int i = 0; i < 5; ++i) {
    printf("%c", soyad[i][0]);
}
Bu şekilde olmalı. soyad arrayini sirayla gezip sirayla ilk harfini yazdiriyoruz.
hocam kod çalışmıyor hatayı da bulamadım
 
Son düzenleme:
Benim attığım çalışıyor. Test edip size göndermiştim.
resim_2022-12-25_130153108.png
 
Code::Blocks böyle saçma hatalar verebiliyor. CLion, Eclipse ya da Atom kullanmanızı öneririm.
Bayat bir derleyici olduğunun farkındayım ama proje ile uğraşıyorum ve bu uzantıdan hazırlayıp göndermem gerekiyor. Çok fazla gereksiz vakit kaybettim ve cumartesi gecesine bitmesi gerek :(. Sizinle blog harici daha pratik bir yolla iletişime geçme imkanım var mı? Takıldığım yerleri daha hızlı sorup çözebilmek için. Blog'da basit bir hata bile soru-cevap şeklinde 2 3 saati bulabiliyor.
 

Technopat Haberler

Geri
Yukarı