C Programlama Stringler
-
Stringlere çalışacağım Deitel çok fazla fonksiyon vermiş bir de okuyarak her şeyi anlayabileceğim gibi gelmiyor.
Hocanın notlarıda algoritmadan oluşuyor C ye çevirmek biri olmadan sıkıntı.
Önereceğiniz bir ders videosu var mı?
-
Video ile olamayacak kadar karışık C'de karakter katarı işlemleri.
En çok ihtiyaç duyulacak işlevler:
1) strlen: Parametre olarak verilen karakter katarının (aslında son elemanı null olan bir karakter dizisinin ilk elemanının adresinin) boyutunu hesaplar. null karakteri dahil değildir. Dönüş tipi size_t'dir fakat bu tip int'e (ve dolayısıyla daha büyük bir tamsayı tipine) dönüştürülebilir. Örneğin:
const * char str = "deneme";
strlen (str) 6 sonucunu verir. str adlı bir karakter katarına sabit gösterici bellekte 7 karakter boyutu kadar alan kaplar (+ null).
2) strcpy: Hedef karakter katarına verilen karakter katarını kopyalar. Sonuç olarak hedef karakter katarının ilk elemanının adresini döndürür.
3) strncpy: Yukarıdakinin aynısı fakat bu sefer hedef karakter katarının kaç elemanının kopyalanacağı da belirtilir.
4) strcat: Hedef karakter dizisinin sonuna başka bir karakter dizisini ekler.
5) strncat: Yukarıdakinin eklenecek dizi elemanı sayısı belirtilebilen şeklidir.
6) strcmp: Verilen iki karakter katarını karşılaştırır. Normalde karakter katarı bir karakter dizisinin ilk elemanının adresi olarak yorumlandığından '==' gibi mantıksal işleçler yerine kullanılır.
7) strncmp: Yukarıdakinin ilk karakter baz alınarak kaç tane elemanının karşılaştırılacağını belirten sürümüdür.
Yukarıda tüm sayısal parametreler size_t tipindedir. Kısaca işaretsiz tamsayı diyelim burada. strcmp ve strncmp'nin geri dönüş değerleri karşılaştırılan karakter katarlarının durumuna göre farklı (en az 3) değer alabilir( >0 v =0 v <0 olmak üzere).
-
temel kısmını iyi anlamak istiyorum.
dediğiniz fonksiyonları çalıştım bolca örnek çözmek gerekiyor.
yeni öğrendiğim için temeli iyi anlatan soru çözen kaynağa ihtiyacım var.
-
En nefret ettiğim tercümelerden biri olan "Katarlar" olarak kaynak aratabilirsin Türkçe olarak.
Örnek: http://www1.gantep.edu.tr/~bingul/c/index.php?ders=12
-
SpArK bunu yazdı
En nefret ettiğim tercümelerden biri olan "Katarlar" olarak kaynak aratabilirsin Türkçe olarak.
Örnek: http://www1.gantep.edu.tr/~bingul/c/index.php?ders=12
bu antepe baktım tamamını da okudum anladım ama çok çok eksik anlatmış şu C yi bir çözeyim eğitim videoları çekeceğim ha :)
-
hocam biz okulda gördük bu dönem C yi, çok ilkel bir dil, eğer programlama merakın varsa, geliştirmek istiyorsan C# kasmanı öneririm, çünkü C nin yapabilecekleri sınırlı..
-
LynXMaSTeR bunu yazdı
hocam biz okulda gördük bu dönem C yi, çok ilkel bir dil, eğer programlama merakın varsa, geliştirmek istiyorsan C# kasmanı öneririm, çünkü C nin yapabilecekleri sınırlı..
Hocam bilmiyorsan tavsiyeni ver otur bari. C ile yapabileceklerin sınırlı gibi cahil cühela yorumlar yapmayın lütfen. Yanlış bilgilendirme yapmayalım. Ha dersin ki yüksek seviyeli bir dil değil. Çoğu şeyi yapmak c# dan çok daha zor dersin anlarım. Ama C# ile yapılamayıp hala C ve C++ gibi dillerle yapılan binlerce yazılım projesini çöpe atıp "-C nin yapabilecekleri sınırlı bi bok yapılmaz" vari konuşmak densizliktir. Dünyanın en büyük yazılım projesinin temelinde bile C/C++ gibi diller var.
-
DrKill bunu yazdıLynXMaSTeR bunu yazdı
hocam biz okulda gördük bu dönem C yi, çok ilkel bir dil, eğer programlama merakın varsa, geliştirmek istiyorsan C# kasmanı öneririm, çünkü C nin yapabilecekleri sınırlı..
Hocam bilmiyorsan tavsiyeni ver otur bari. C ile yapabileceklerin sınırlı gibi cahil cühela yorumlar yapmayın lütfen. Yanlış bilgilendirme yapmayalım. Ha dersin ki yüksek seviyeli bir dil değil. Çoğu şeyi yapmak c# dan çok daha zor dersin anlarım. Ama C# ile yapılamayıp hala C ve C++ gibi dillerle yapılan binlerce yazılım projesini çöpe atıp "-C nin yapabilecekleri sınırlı bi bok yapılmaz" vari konuşmak densizliktir. Dünyanın en büyük yazılım projesinin temelinde bile C/C++ gibi diller var.
hocam gereksiz bir tartışma içine girmek istemiyorum. kendin de demişsin, "yüksek seviyeli bir dil değil, çoğu şeyi yapmak C# dan çok daha zor" diye, benim de anlatmak istediğim buydu. sırf laf sokmak için yorum yapma lütfen..
-
LynXMaSTeR bunu yazdıDrKill bunu yazdıLynXMaSTeR bunu yazdı
hocam biz okulda gördük bu dönem C yi, çok ilkel bir dil, eğer programlama merakın varsa, geliştirmek istiyorsan C# kasmanı öneririm, çünkü C nin yapabilecekleri sınırlı..
Hocam bilmiyorsan tavsiyeni ver otur bari. C ile yapabileceklerin sınırlı gibi cahil cühela yorumlar yapmayın lütfen. Yanlış bilgilendirme yapmayalım. Ha dersin ki yüksek seviyeli bir dil değil. Çoğu şeyi yapmak c# dan çok daha zor dersin anlarım. Ama C# ile yapılamayıp hala C ve C++ gibi dillerle yapılan binlerce yazılım projesini çöpe atıp "-C nin yapabilecekleri sınırlı bi bok yapılmaz" vari konuşmak densizliktir. Dünyanın en büyük yazılım projesinin temelinde bile C/C++ gibi diller var.
hocam gereksiz bir tartışma içine girmek istemiyorum. kendin de demişsin, "yüksek seviyeli bir dil değil, çoğu şeyi yapmak C# dan çok daha zor" diye, benim de anlatmak istediğim buydu. sırf laf sokmak için yorum yapma lütfen..
Anlatmak istediğini çok yanlış anlatmışsın o zaman. "C'nin yapabilecekleri sınırlı" pekte öyle anlaşılmıyor. Şuanda kullandığın işletim sistemi C ile, kullandığın tarayıcı (firefox) C ve C++ ile yazılmışken, C ile yapabileceklerin sınırlı, C çok ilkel vb cümleler ne kadar sığ bir bilgi seviyen olduğunu ortaya koyuyor. DrKill'in söylediklerinin tamamına katılıyorum, C ve C# ın kullanım alanları çok farklıdır, seninki, ferrari varken damperli kamyona ne gerek var demeye benziyor.
Konuyla ilgili olarak, C'nin en problemli konusudur stringler, yıllarca çalışsan bile stringin sonlandırıcısını ('\0') bir yerde hesaba katmadığın için programın patlayabilir, bilgiden çok tecrübe ile ilgili.
-
tamam hocam, siz haklısınız diyor ve tartışmayı sonlandırmak istiyorum.
-
C'ye sınırlı demek bi programcı ya da mühendisin yapabileceği en büyük hatalardan birisidir, c c++ assembly gibi diller babadır, c# en kolay halidir, 5 yaşındaki bi çocuk bile c# ta yazar