Şimdi Ara

C++ ta '-'

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
345
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar merhaba buraya yazdığım kodda "ilk[x[k]-'a']++;" olan yeri anlayamadım öncelikle - işareti ne işe yarıyor ? ve dizi sonuna ++ eklememizin sebebi nedir ? genel olarak açıklar mısınız ?


    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    using namespace std;
    int anagr(char x[],char y[]){
    int ilk [26]={0},iki[26]={0},k=0;

    while(x[k]!='\0'){
    ilk[x[k]-'a']++;
    k++;
    }
    k=0;
    while(y[k]!='\0'){
    iki[y[k]-'a']++;
    k++;
    }
    for(k=0;k<26;k++){
    if(ilk[k]!=iki[k]){
    if(ilk[k]!=iki[k])
    return 0;
    }
    return 1;
    }
    }
    main(){
    char a[]="sidlaa";
    char b[]="lasdia";
    cout<<anagr(a,b);

    }



  • Fonksiyonda x parametresi olan kısıma a dizisinin adresi atılmış artık anagr fonksiyonunda x değişkeninde a dizisinin adresi var x[k]-'a' ifadesinde k=0 olduğundan aslında x[0]-'a' yapılmış burada stringin 0. karakterinde "s" harfi var yani "s" harfinden "a" harfi çıkarılmış s harfinin ascii kodu 115 , a harfinin ise 97 yani 115-97=18 kodun son hali aslında şu oldu ilk[18]++; ilk dizisinde herhangi birşey olmadığından buradaki artırma işleminde 0 dan başlanarak 1 arttırılmakta. yani ilk[0]++ ile ilk[0]+1 aynı şeydir.

    örneğin:

    cout<<(char) (x[0]+2 )<<endl;

    yapılırsa s harfinin 2 arttırılıp ekranda u harfinin bastırıldığını görürsünüz.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.