1. sayfa
Siz sadece okulunuzun verdiği bilgiylemi yetiniyorsunuz? Kendi başınıza çalışmayı denediniz mi? İsteksiz olduğunuz bir işi zorla yaparak nasıl mühendis olacaksınız? Şu okulların yazılım eğitimini gerçekten merak etmeye başladım doğrusu... Neyse ben sana bir amatör olarak biraz teorik bilgi vereyim kodu kendin yazmayı dene. String dediğimiz karakter katarının her bir karakteri 1 baytlık bir sayıdır. Her birinin tipi char'dır. Demekki string aslında 1 baytlık sayılardan oluşan ve bellekte art arda gelen bir sayı dizisidir. Bir sayı karakter olarak yorumlanıyorsa artık o sayı, o karakterin ASCII numarasıdır. Şu adresten ascii tablosuna baktığın zaman her karakterin bir numarası olduğunu görürsün. http://www.asciitable.com/ Tabloya dikkat edersen büyük harfler önce gelir ve son büyük harfin ascii kodu 90'dır. Yani bir karakterin numarası 90'dan büyük ise küçük harf, değilse büyük harf'tir diyebiliriz. Bir fikir verdi mi? Senin yapman gereken bir döngü içinde dizinin sonuna kadar gitmek ve karakterleri, yani sayıları teker teker karşılaştırmak. Peki bir karakter dizisinin sonunu nasıl bileceğiz? Kodun içinde sabit bir string yazdığımız, veya çalışma zamanında giriş yağtığımız zaman derleyici dizinin sonuna bir NULL karakteri ekler. Bu karakter, ascii tablosunun ilk, yani 0 numaralı karakteridir. Bunu döngüyü bitirmek için kontrol amaçlı kullanırız. Bir harfin büyük mü küçük mü olduğunu anlamanın çok kolay bir yolu daha var. Ascii numarasının 5 numaralı biti 0 ise harf büyük, 1 ise harf küçüktür. Ama bunun kontrolünü yapabilmek için bit operatörlerini bilmek gerekir. Biliyorsan bu şekilde yapman daha iyi olur bence. Eğer gene yazamam diyorsan bir iki kelam kodda yazarız artık. Ama önce kendin dene. |
Hayır bit operatorunu bilmiyorum. Bu arada konu ile ilgili bir fikrim vardı ama yazmadım. Hemen kızma :) anlattığın teorik kısmı da biliyorum ama bit operatörlerini bilmiyorum. Şu kodları yazdım. #include <stdio.h> Yapamadığım kısım şu. stringlen ile aldığım uzunluğun neresinden başlamalıyım kelimeleri bölmeyi. Bir sonraki büyük harfi görene kadar. Ama orasını beceremedim. Orasını çözsem biticek program :) |
Niye iki boyutlu dizi kullandın onu anlamadım. Sadece bir giriş yapıyorsun programda. Ayrıca parçaladığın stringleri depolamana gerek varmı? Şöyle olmazmı.
Acele yazdım yazım hatası olabilir. |
Yardımın için teşekkürler. Verdiklerin kafamda bir fikir oluşturdu :) ve programı yazdım. gayet güzel çalışıyor. Şu şekilde: #include <stdio.h> |
Sevindim. Bu arada yazım hatası yapmışım. ![]() Ve son soru: Hocan da burayı takip ediyorsa ne olacak. ![]() |
Yoksa siz misiniz ? :D Bilmem. Birşey olacağını düşünmemiştim. Çünkü bir arkadaşla gün boyu çok uğraş verdik. Son çare yardım almayı düşündük :) |
1. sayfa
Bize verilen bir string' i. Örneğin "MustafaKemalAtaturk" Bunu, içindeki büyük harf sayısına göre parçalıcak ve tek tek ekrana yazdırıcak.
Program interaktif şu şekilde olmalı:
Enter a full name> MustafaKemalAtaturk
There are first, middle & last names:
first: Mustafa middle: Kemal last: Ataturk
-------------------------------------------------------
Diğer bir şekilde 2 isim olursa.
Enter a full name> MustafaKemal
There are first & last names:
first: Mustafa last: Kemal
Eğer 1 veya 4 ve 4' den büyük isimler olursa Program ekrana "Invalid Names" olarak prompt vericek.
String konusunda o kadar iyi değilim. bu yüzden gerçekten yardımınızı istiyorum. Gece en geç 24.00 e kadar mail atmam gerekiyor. Şimdiden teşekkürler.
< Bu mesaj bu kişi tarafından değiştirildi saxahan -- 25 Mart 2010; 20:44:38 >