Menu
Coddy logo textTech

Używanie strlen()

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

Dowiedziałeś się, jak odczytywać ciągi znaków z danych wejściowych użytkownika, ale teraz potrzebujesz sposobu na określenie, jak długie są te ciągi. Język C udostępnia w tym celu funkcję strlen() z biblioteki <string.h>.

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

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

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

Aby użyć 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ą oznaczają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 programowaniu w 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 oznaczającą liczbę słów do przetworzenia
  2. Dla każdego z n słów:
    • Zadeklarować tablicę znaków zawierającą 50 elementów, aby przechować słowo
    • 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 obliczyć i wypisać łączną liczbę znaków we wszystkich słowach
  4. Znaleźć i wypisać długość najdłuższego napotkanego słowa

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

Wynik powinien wyświetlać rezultaty w następującym formacie:

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 być następujący:

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

To wyzwanie sprawdza, czy rozumiesz, jak używać strlen() do mierzenia długości ciągów znaków, przetwarzać wiele ciągów za pomocą pętli oraz wykonywać obliczenia na podstawie danych o długości ciągów znaków.

Spróbuj swoich sił

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

int main() {
    // Wczytaj liczbę słów
    int n;
    scanf("%d", &n);
    
    // Zmienne do śledzenia wartości łącznych
    int total_characters = 0;
    int max_length = 0;
    
    // 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
    
    // Wypisz wyniki końcowe
    printf("Total characters: %d\n", total_characters);
    printf("Longest word length: %d\n", max_length);
    
    return 0;
}
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