Merhaba, tekrar hoş geldiniz. Burada başka bir zorlukla karşı karşıyayız. Umarım karakter dizilerine
ve karakter dizilerine aşina olmuşsunuzdur. C ile ilgili çok önemli bir kavram.
Bu dize değişmezlerini değişkenlerde, karakter dizilerinde saklama fikri, bunun bir dizi olduğunu
ve farklı öğelere nasıl erişebileceğinizi anlamak.
Bu meydan okuma buna odaklanacak.
Bazı dize işlevlerini nasıl kullanacağınızı anlamanıza yardımcı olacak başka bir görevimiz olacak çünkü
bunlardan birçoğunu ele alıyoruz.
Ama bu seferki gerçekten sizin karakter dizisi ve karakter dizisi kavramlarına
aşina olmanız için.
Bu ödevin gereklilikleri, karakter dizileri
konusundaki anlayışınızı test eden bir program yazmanızdır.
Sizden yapmanızı istediğim şey, bir dizi fonksiyon yazmanız.
Öncelikle bir dizedeki karakter sayısını sayan bir fonksiyon yazmanızı istiyorum.
Karıştırma uzunluğuna benzer, ancak aslında bu işlevi kullanmadan
kendiniz uygulayacaksınız.
Bu yüzden sterling kütüphane fonksiyonunu kullanamazsınız.
Fonksiyon parametre olarak bir a karakteri almalı
ve bir int döndürmelidir.
Böylece parametre olarak sadece bir karakter dizisine sahip olabilirsiniz.
Bu ödevde işaretçiler hakkında endişelenmenize hiç gerek yok.
Bu sadece bir parametre sabiti alacaktır çünkü değişmeyecektir.
Ve yapacağınız tek şey dizi boyunca yinelemek olacaktır.
Yani bir dizeye sahip olsanız bile,
bir dizi olduğu için karakterlere tek tek erişebilirsiniz.
Dolayısıyla, tek tek karakterlere erişebiliyorsanız, sadece bir sayı tutabilir ve ardından görüntüleyebilirsiniz.
Bu fonksiyon, uzunluk olan bir tamsayı döndürmelidir.
Yazmanızı istediğim bir sonraki işlev, iki dizeyi birleştirebileceğiniz
concatenate işlevini uygulamanızı istiyorum.
Tekrar ediyorum, herhangi bir kütüphane fonksiyonu kullanmanızı istemiyorum, str cat kullanmayın.
Bu fonksiyon üç parametre almalıdır;
sonuç ve ardından birleştirmek istediğiniz
iki karakter, birleştirmek istediğiniz iki dizgi.
Yani bunlar sabit olabilir çünkü bunları değiştirmeyeceksiniz.
Sonuç sadece içinde sakladığınız karakter dizesi olacaktır.
Yani oldukça basit. Yine, işaretçilerle uğraşmak zorunda değilsiniz.
Birkaç döngüye sahip olacaksınız, dizilerin her birinden geçecek
ve sonuç dizisine atama yapacaksınız.
Ve bu işlev için döndürmeniz gereken şey hiçbir şey değildir.
Sonuç dizisini aktardığınız için herhangi bir şey döndürmeniz gerekmez.
Bunu değiştirip bir işaretçi ve bunun gibi şeyler döndürebiliriz ancak bu atama için bunu yapmayacağız.
Yani bu, iki dizeyi manuel olarak birleştirecek.
Yazmanızı istediğim üçüncü fonksiyon iki stringi karşılaştırarak eşit olup olmadıklarını görmek.
Tekrar ediyorum, sizden kütüphane işlevini kullanmanızı istemiyorum, bu karakter dizilerinin nasıl çalıştığını anlamanızı istiyorum.
Bu fonksiyon parametre olarak iki sabit karakter dizisi almalı
ve doğru ya da yanlış bir Boole
döndürmelidir. Eşitse doğru, değilse yanlış.
Peki ne yapmanız gerekecek, diziler
arasında yineleme yapmanız ve her bir karakteri karşılaştırmanız gerekecek.
Ve muhtemelen eşit dizeler için null sonlandırıcı aramalısınız
çünkü null sonlandırıcılar ne zaman durmak istediğinizi belirleyebilir.
Bu dizilerin boyutlarına sahip olmadığınız için, ikinci dizenin
ne zaman olacağını belirlemek için null terminator aramanız gerekecektir.
Ve aslında ikinci dizeyi birinciyle karşılaştırmalısınız.
Yani bunu nasıl yapacağınızı bulmanız gerekiyor. Ancak burada, bir karakter dizisi oluşturmaya ve
onu manipüle etmeye veya uzunluğunu belirlemek
için ona erişmeye, onu birleştirmeye ve eşit olup olmadığını kontrol etmeye aşina
olmanızı sağlayacak üç işlev bulunmaktadır.
İyi şanslar. Bir sonraki derste bir çözüm sunacağım. Teşekkür ederim.