folder Tahribat.com Forumları
linefolder C - C++
linefolder C Kelimeyi Harflere Bölme



C Kelimeyi Harflere Bölme

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zigor
    zigor's avatar
    Kayıt Tarihi: 30/Eylül/2012
    Erkek

    Müridler kitaptan algoritma çalışıyorum, örnekleri VB dilinde vermiş. Ancak VB bilmiyorum, yeni yeni C öğreniyorum. C de bu programı yazmak istiyorum.

    Kullanıcıdan alınan kelimeyi her satıra bir harf gelecek şekilde ve her satırda sırasıyla 1-2-3-4-... harf olacak şekilde bir program yazmak istiyorum. Mesela ALI kelimesini girdik diyelim. 

    A

    LL

    III

    Bu şekilde yazmasını istiyorum. VB kodu ;

     

    a="BULENT"

    For i= 1 To Len(a)

            harf = Mid(a, i, 1)

            For j = 1 To i

                 Print harf;

          Next j

          Print

    Next i

     

    **Odev istemenin yasak olduğunu biliyorum, ödev değildir. 

    **Henüz çalışmadığım bir konu ama algoritma kitabında örnekler karışık olduğundan denk geldim, aklıma takıldı. Satırlara sırasıyla 1-2-3 harf yazmayı biliyorum. Ancak kelimeyi harflere ayırmaya dair hiçbir şey bilmiyorum. İnternette denk geldiklerim de farklı dillerde olduğundan, yine anlamadım.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    #include <stdio.h>
    #include <string.h>
    int main(){
    char a[150];
    int i=0,j;
    scanf("%s", a);
    while(a[i]!=0){

    for(j=0; j<=i;j++){
    printf("%c", a[i]);
    }
    printf("\n");
    i++;
    }

    }

    syntax hatalı olabilir ama böyle yani

    http://pastebin.com/iJd1pEjq

    edit: görüntü

    ZoRKaYa tarafından 18/Nis/14 18:50 tarihinde düzenlenmiştir

    echo "imzanız özel karakter içermemelidir";
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    C'de karakter katarları (string) diye bir kavram yoktur. Karakter katarlarını kullanmak için karakter dizileri kullanılır.

    strlen işlevi bir karakter katarının (aslında char dizisi) uzunluğunu bulur. 

    sozcuk değişkeni aslında bir dizi olduğu için [] işleciyle elemanlarına erişilebilir.

    Kodun çalışan hali: http://ideone.com/ufi3Ov

    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
    	char sozcuk[256] = "irlandalilastirilamayanlardan";
    	
    	int i = 0;
    	int j = 0;
    	for(; i < strlen(sozcuk); ++i)
    	{
    		for(j = 0; j <= i; ++j)
    		{
    			printf("%c", sozcuk[i]);
    		}
    		printf("\n");
    	}
    	// your code goes here
    	return 0;
    }
    
    YeniHarman tarafından 18/Nis/14 18:59 tarihinde düzenlenmiştir

    Olaylara karışmayın!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zigor
    zigor's avatar
    Kayıt Tarihi: 30/Eylül/2012
    Erkek
    ZoRKaYa bunu yazdı

    #include <stdio.h>
    #include <string.h>
    int main(){
    char a[150];
    int i=0,j;
    scanf("%s", a);
    while(a[i]!=0){

    for(j=0; j<=i;j++){
    printf("%c", a[i]);
    }
    printf("\n");
    i++;
    }

    }

    syntax hatalı olabilir ama böyle yani

    http://pastebin.com/iJd1pEjq

    edit: görüntü

    Teşekkür ederim, stringleri henüz çalışmadığımdan yapamamıştım, araştırıyorum hemen. 

    Herhangi bir hata da yok, doğrudan çalıştı.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    YeniHarman bunu yazdı

    C'de karakter katarları (string) diye bir kavram yoktur. Karakter katarlarını kullanmak için karakter dizileri kullanılır.

    strlen işlevi bir karakter katarının (aslında char dizisi) uzunluğunu bulur. 

    sozcuk değişkeni aslında bir dizi olduğu için [] işleciyle elemanlarına erişilebilir.

    Kodun çalışan hali: http://ideone.com/ufi3Ov

    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
    	char sozcuk[256] = "irlandalilastirilamayanlardan";
    	
    	int i = 0;
    	int j = 0;
    	for(; i < strlen(sozcuk); ++i)
    	{
    		for(j = 0; j <= i; ++j)
    		{
    			printf("%c", sozcuk[i]);
    		}
    		printf("\n");
    	}
    	// your code goes here
    	return 0;
    }
    

    Hocam c'de string denilen kavram olmaması tamamen fizikseldir. Aslında senin söylediğin şekilde karakterlerde yoktur C'de. char denilen veri tipi tek byte sayı tutmak için vardır. Biz insanlar bunları ascii tablosuna göre ekrana bastırırız bu kadar. Tıpkı stringlerin olmayıp bu ascii tablosundaki ilişkili sayıları yanyana getirip arraylere sokup yapmacık stringler elde ettiğimiz gibi.


    echo "imzanız özel karakter içermemelidir";
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zigor
    zigor's avatar
    Kayıt Tarihi: 30/Eylül/2012
    Erkek

    Bir şey daha sormak istiyorum.

    #include<stdio.h>

    #include<string.h>

    main()

     {

         char ktr[256];

         puts("Kelime gir:  ");

         gets(ktr);

         printf("%s, %d karakterden oluşmuştur\n",ktr,strlen(ktr));

         printf("%c ucuncu, %c 1. karakterdir",ktr[3],ktr[1]);

         return 0;

     }

     

    Bu kod da toplam karakter sayısını doğru olarak hesaplıyor. Ancak ikinci printf de istediğim gibi 3. ve 1. karakterleri yazdıramadım. Hata nerede ? 

    zigor tarafından 18/Nis/14 19:34 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    OnLyGoDCaNStoPMe
    OnLyGoDCaNStoPMe's avatar
    Kayıt Tarihi: 24/Mart/2010
    Erkek
    zigor bunu yazdı

    Bir şey daha sormak istiyorum.

    #include<stdio.h>

    #include<string.h>

    main()

     {

         char ktr[256];

         puts("Kelime gir:  ");

         gets(ktr);

         printf("%s, %d karakterden oluşmuştur\n",ktr,strlen(ktr));

         printf("%c ucuncu, %c 1. karakterdir",ktr[3],ktr[1]);

         return 0;

     }

     

    Bu kod da toplam karakter sayısını doğru olarak hesaplıyor. Ancak ikinci printf de istediğim gibi 3. ve 1. karakterleri yazdıramadım. Hata nerede ? 

    Diziler 0dan başlıyor hocam 3. karakteri istiyorsan ktr[2] diye çağırman gerekiyor.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zigor
    zigor's avatar
    Kayıt Tarihi: 30/Eylül/2012
    Erkek
    OnLyGoDCaNStoPMe bunu yazdı
    zigor bunu yazdı

     Hata nerede ? 

    Diziler 0dan başlıyor hocam 3. karakteri istiyorsan ktr[2] diye çağırman gerekiyor.

    :) Teşekkürler, mesajı yazdıktan sonra fark ettim bir kayma olduğunu. 

     

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek
    ZoRKaYa bunu yazdı

    ...Aslında senin söylediğin şekilde karakterlerde yoktur C'de. char denilen veri tipi tek byte sayı tutmak için vardır...

    Aslında char'ın boyutunun bir bayt olduğu da standartta tanımlanmamış. char, standartta bir karakteri tutabilen herhangi bir boyutta olabilir. Aynı şekilde int de 16 ya da 32 bit gibi bir tanıma sahip değil, en az char ya da chardan daha büyük bir tip. Long için de aynı şey geçerli, int'e eşit ya da intten büyük.


    Olaylara karışmayın!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    YeniHarman bunu yazdı
    ZoRKaYa bunu yazdı

    ...Aslında senin söylediğin şekilde karakterler de yoktur C'de. char denilen veri tipi tek byte sayı tutmak için vardır...

    Aslında char'ın boyutunun bir bayt olduğu da standartta tanımlanmamış. char, standartta bir karakteri tutabilen herhangi bir boyutta olabilir. Aynı şekilde int de 16 ya da 32 bit gibi bir tanıma sahip değil, en az char ya da chardan daha büyük bir tip. Long için de aynı şey geçerli, int'e eşit ya da intten büyük.

    Ee şimdi aslında array denilen şeyin C dilinde first class obje olmadığından ve aslında 3[a] ile a[3] ün aynı şey olduğundan ve ikisinin de 4. elemanı verdiğinden bahsetmek de vardı azizim ama arkadaş yeni başlıyormuş kafası karışmasın. Boşverelim o yüzden.


    echo "imzanız özel karakter içermemelidir";
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zigor
    zigor's avatar
    Kayıt Tarihi: 30/Eylül/2012
    Erkek
    ZoRKaYa bunu yazdı
    YeniHarman bunu yazdı
    ZoRKaYa bunu yazdı

    ...Aslında senin söylediğin şekilde karakterler de yoktur C'de. char denilen veri tipi tek byte sayı tutmak için vardır...

    Aslında char'ın boyutunun bir bayt olduğu da standartta tanımlanmamış. char, standartta bir karakteri tutabilen herhangi bir boyutta olabilir. Aynı şekilde int de 16 ya da 32 bit gibi bir tanıma sahip değil, en az char ya da chardan daha büyük bir tip. Long için de aynı şey geçerli, int'e eşit ya da intten büyük.

    Ee şimdi aslında array denilen şeyin C dilinde first class obje olmadığından ve aslında 3[a] ile a[3] ün aynı şey olduğundan ve ikisinin de 4. elemanı verdiğinden bahsetmek de vardı azizim ama arkadaş yeni başlıyormuş kafası karışmasın. Boşverelim o yüzden.

    Denedim, sozcuk[3] ile 3[sozcuk] ikisi de 4. elemanı verdi :) 

Toplam Hit: 2574 Toplam Mesaj: 11