Menu
CoddyTech

Używanie strlen()

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 15 z 63.

Uczysz się już odczytywać ciągi znaków z danych wejściowych użytkownika, ale teraz potrzebujesz sposobu na określenie ich długości. W tym celu język C udostępnia funkcję strlen() z biblioteki <string.h>.

Funkcja strlen() zlicza liczbę znaków w ciągu znaków, zatrzymując się, gdy napotka terminator null \0. Co ważne, nie uwzględnia terminatora null w swoim wyniku — zlicza tylko widoczne znaki.

#include <stdio.h>
#include <string.h>

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // Wypisuje: Length: 5

Aby użyć funkcji strlen(), musisz dołączyć nagłówek <string.h> na początku programu. Funkcja przyjmuje ciąg znaków jako argument i zwraca liczbę całkowitą określającą liczbę znaków przed terminatorem null.

Ta funkcja jest szczególnie przydatna, gdy chcesz sprawdzić, ile miejsca zajmuje ciąg znaków, zweryfikować długość danych wejściowych lub wykonać operacje zależne od rozmiaru ciągu znaków. To jedna z najczęściej używanych funkcji do obsługi ciągów znaków w języku C.

challenge icon

Wyzwanie

Łatwy

Napisz program w C, który odczytuje z wejścia wiele słów i analizuje ich długości za pomocą funkcji strlen(). Twój program powinien:

  1. Odczytać liczbę całkowitą n, która określa liczbę słów do przetworzenia
  2. Dla każdego z n słów:
    • Zadeklarować tablicę znaków z 50 elementami do przechowywania słowa
    • Odczytać słowo za pomocą scanf
    • Użyć strlen(), aby obliczyć długość słowa
    • Wypisać słowo i jego długość w określonym formacie
  3. Po przetworzeniu wszystkich słów umieścić w total_characters łączną liczbę znaków we wszystkich słowach
  4. Umieścić w max_length długość najdłuższego słowa

Pamiętaj, aby dołączyć nagłówek <string.h>, żeby móc używać funkcji strlen().

Wiersze poniżej Twojego kodu wypisują total_characters i max_length. Wynik powinien wyglądać tak:

Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]

Na przykład, jeśli dane wejściowe to:

3
hello
programming
C

Wynik powinien wyglądać tak:

Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11

To wyzwanie sprawdza Twoje rozumienie użycia strlen() do mierzenia długości ciągów znaków, przetwarzania wielu ciągów za pomocą pętli oraz wykonywania obliczeń na podstawie długości ciągów znaków.

Spróbuj swoich sił

    // TODO: Napisz tutaj swój kod
    // Przetwórz każde słowo za pomocą pętli
    // Dla każdego słowa:
    // - Zadeklaruj tablicę znaków z 50 elementami
    // - Wczytaj słowo za pomocą scanf
    // - Oblicz długość za pomocą strlen()
    // - Wypisz słowo i jego długość
    // - Zaktualizuj total_characters i max_length
    
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online