Şimdi Ara

C++ ta char a char atama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
5
Cevap
0
Favori
881
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar bu konuda sürekli takılıyorum. char tipli bir değişkene yine char bir değişken atayınca hata veriyor bazen tanımlamayı değiştirince (örn: char str; veya char str[] veya char *str veya char *str[] ) düzeldiği de oluyor ama ben bunun mantığını anlamadım. eğer tanımlama şeklini değiştirirsem de str fonksiyonlarında hata veriyor. strcat(str,str2) yaparken hata veriyor. kısacası char-string kullanımında kafam karıştı, yabancı kaynaklara bakınca daha çok karışıyor. bi yardımcı olsanız



  • 1-char -> tek char
    2-char[] -> char dizisi
    3-char* -> char pointer
    4-char* [] -> char pointer dizisi

    2 ve 3 birbiri yerine kullanılabilir, diğerleri başka.
  • Ornek atarsaniz takildiginiz yeri anlatabilirim. Char* C style diye biliyorum. Soyle bir mantigi var. Bellekte char[200] yer ayirirsiniz. İcine "serhat" atadiniz. Sonuna null char ekler. 200char ayirdiginiz yeri bu sekilde 6 karakter icin kullanmis olursunuz. 200 den buyuk atarsaniz hata verir yada baska memory bolgesine yazmis olursunuz. Ekrana yazarken kendi otomatik null char gorene kadar yazar. C++ ta string tipi gelmistir. Esasen char* dir. Yani char arrayi. Yukarida anlattigim fixed lenght muhabbetine gerek kalmadan kendi yonetir. Direk aklimdan yazdigim icin hatalar olabilir ama genel kavramaniz gereken mantik budur.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • teşekkür ederim ancak son cevapta kafam biraz karıştı :D
  • mr.thuglife M kullanıcısına yanıt
    Strcat ile ilgili sorununu şu şekilde anlatayım.


    char* nick="yokedici" ;


    Üstte nick adlı char pointer string literal olarak adlandırılır. Bu türdeki bir değişken modifiye edilemez. Çünkü sen bu değişkene yer alırken yokedici kelimesine yetecek kadar yer aldın. Strcat ise boyutu büyütebilecek bir şey olduğundan dolayı bu türde bir değişken strcat için uygun değil.


    char nick[10] = "yokedici"


    Strcat kullanmak istiyorsan char array olarak tanımladığın bir değişkenle gitmen gerekiyor. Yani allocate edilmiş bir değişkene ihtiyacın var. Fakat nick değişkeni 10 karakterlik yer içeriyor. "yokedici" kelimesinin üstüne 10 karakteri geçecek kadar karakter basarsan yine başın belaya girer.

    Kısaca boyutu aşmamak önemli ve bu yüzden ilk verdiğim örnekteki değişkeni strcat ile kullanamazsın.




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.