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: 5Aby 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.
Wyzwanie
ŁatwyNapisz 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:
- Odczytać liczbę całkowitą
noznaczającą liczbę słów do przetworzenia - Dla każdego z
nsłó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
- Po przetworzeniu wszystkich słów obliczyć i wypisać łączną liczbę znaków we wszystkich słowach
- 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
CWynik powinien być następujący:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11To 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;
}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
1Podstawy wskaźników
Czym jest wskaźnik?Deklarowanie wskaźnikówOperator pobrania adresu (&)Operator dereferencji (*)Wskaźniki NULLPodsumowanie: podstawy wskaźników4Projekt: Proste narzędzie tekstowe
Przegląd projektuLiczenie znaków2Wskaźniki i tablice
Nazwy tablic jako wskaźnikiElementy tablic — wskaźnikiArytmetyka wskaźnikówPorównywanie wskaźnikówPodsumowanie: przechodzenie po tablicy za pomocą wskaźników5Wskaźniki i funkcje
Przekazywanie przez wartośćPrzekazywanie wskaźników do funkcjiModyfikowanie zmiennych za pomocą wskaźnikówKlasyczny przykład: zamianaPrzekazywanie tablic do funkcjiPowtórka: argumenty wskaźnikowe funkcji8Struktury i wskaźniki
Wskaźniki do strukturOperator strzałki (->)Przekazywanie struktur przez wartośćPrzekazywanie wskaźników do strukturDynamiczna alokacja strukturPodsumowanie: modyfikowanie struktury — wskaźnik11Końcowe zadania powtórkowe
Powtórka: dynamiczne łączenie ciągów znakówPowtórka: tablica strukturPowtórka: licznik częstotliwości słów3Tablice znaków i ciągi znaków
Ciągi znaków jako tablice charZnak końca ciąguWczytywanie ciągu za pomocą scanfUżywanie strlen()Używanie strcpy()Używanie strcat()Używanie strcmp()Podsumowanie: podstawowe funkcje do obsługi ciągów znakówPoćwicz samodzielnie: Kompilator C online