strlen() Kullanımı
Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 15 / 63.
Kullanıcı girişinden dizgileri okumayı öğrendiniz, ancak şimdi bu dizgilerin ne kadar uzun olduğunu belirlemenin bir yoluna ihtiyacınız var. C, özellikle bu amaç için <string.h> kütüphanesinden strlen() fonksiyonunu sağlar.
strlen() fonksiyonu, boş sonlandırıcıya (\0) ulaştığında durarak bir dizedeki karakter sayısını sayar. Önemli bir nokta şudur ki, sayıma boş sonlandırıcıyı dahil etmez - sadece gerçek görünür karakterleri sayar.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Şunu yazdırır: Length: 5strlen() fonksiyonunu kullanmak için, programınızın en üstüne <string.h> başlık dosyasını dahil etmelisiniz. Fonksiyon, argüman olarak bir dizgi alır ve boş sonlandırıcıdan (null terminator) önceki karakter sayısını temsil eden bir tam sayı döndürür.
Bu fonksiyon; bir dizginin ne kadar yer kapladığını bilmeniz, giriş uzunluğunu doğrulamanız veya dizgi boyutuna bağlı işlemler gerçekleştirmeniz gerektiğinde özellikle yararlıdır. C programlamada en yaygın kullanılan dizgi fonksiyonlarından biridir.
Görev
KolayGirdiden birden fazla kelime okuyan ve strlen() fonksiyonunu kullanarak bunların uzunluklarını analiz eden bir C programı yazın. Programınız şunları yapmalıdır:
- İşlenecek kelime sayısını temsil eden bir
ntam sayısı okuyun nkelimenin her biri için:- Kelimeyi saklamak için 50 elemanlı bir karakter dizisi (character array) tanımlayın
scanfkullanarak kelimeyi okuyun- Kelimenin uzunluğunu hesaplamak için
strlen()kullanın - Kelimeyi ve uzunluğunu belirtilen formatta yazdırın
- Tüm kelimeleri işledikten sonra, tüm kelimelerdeki toplam karakter sayısını hesaplayın ve yazdırın
- Karşılaşılan en uzun kelimenin uzunluğunu bulun ve yazdırın
strlen() fonksiyonunu kullanmak için <string.h> başlık dosyasını dahil etmeyi unutmayın.
Çıktınız sonuçları aşağıdaki formatta görüntülemelidir:
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]Örneğin, girdi şu şekildeyse:
3
hello
programming
CÇıktınız şu şekilde olmalıdır:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Bu görev, dize uzunluklarını ölçmek için strlen() kullanımını, döngülerle birden fazla dizeyi işlemeyi ve dize uzunluğu verilerine dayalı hesaplamalar yapma konusundaki anlayışınızı test eder.
Kopya kağıdı
<string.h> kütüphanesindeki strlen() fonksiyonu, bir dizedeki karakter sayısını, boş sonlandırıcıyı (\0) hariç tutarak sayar:
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Çıktı: Length: 5Fonksiyon, argüman olarak bir dize alır ve boş sonlandırıcıdan önceki görünür karakterlerin sayısını temsil eden bir tam sayı döndürür.
Kendin dene
#include <stdio.h>
#include <string.h>
int main() {
// Kelime sayısını oku
int n;
scanf("%d", &n);
// Toplamları takip etmek için değişkenler
int total_characters = 0;
int max_length = 0;
// YAPILACAK: Kodunuzu buraya yazın
// Bir döngü kullanarak her kelimeyi işle
// Her kelime için:
// - 50 elemanlı bir karakter dizisi tanımlayın
// - scanf kullanarak kelimeyi okuyun
// - strlen() kullanarak uzunluğu hesaplayın
// - Kelimeyi ve uzunluğunu yazdırın
// - total_characters ve max_length değerlerini güncelleyin
// Nihai sonuçları yazdırın
printf("Total characters: %d\n", total_characters);
printf("Longest word length: %d\n", max_length);
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow bölümündeki tüm dersler
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String Fonksiyonları