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: 5Aby 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.
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ą
n, która określa liczbę słów do przetworzenia - Dla każdego z
nsłó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
- Po przetworzeniu wszystkich słów umieścić w
total_charactersłączną liczbę znaków we wszystkich słowach - Umieścić w
max_lengthdł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
CWynik powinien wyglądać tak:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11To 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
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