Menu
Coddy logo textTech

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: 5

strlen() 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.

challenge icon

Görev

Kolay

Girdiden 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:

  1. İşlenecek kelime sayısını temsil eden bir n tam sayısı okuyun
  2. n kelimenin her biri için:
    • Kelimeyi saklamak için 50 elemanlı bir karakter dizisi (character array) tanımlayın
    • scanf kullanarak kelimeyi okuyun
    • Kelimenin uzunluğunu hesaplamak için strlen() kullanın
    • Kelimeyi ve uzunluğunu belirtilen formatta yazdırın
  3. Tüm kelimeleri işledikten sonra, tüm kelimelerdeki toplam karakter sayısını hesaplayın ve yazdırın
  4. 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: 11

Bu 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: 5

Fonksiyon, 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;
}
quiz iconKendini test et

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