Wynik końcowy
Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 24 z 63.
Wyzwanie
ŁatwyUzupełnij swój program do przetwarzania tekstu, integrując wszystkie funkcje opracowane w poprzednich lekcjach w jednym, kompleksowym wyniku. Twój program powinien:
- Poprosić użytkownika o wpisanie krótkiego zdania, wyświetlając:
Enter a sentence:(bez znaku nowej linii na końcu: użyjprintf("Enter a sentence: "), a nieprintf("Enter a sentence: \n")) - Zadeklarować tablicę znaków o nazwie
sentencez 200 elementami, aby przechowywać dane wejściowe - Użyć
scanfze specyfikatorem formatu%s, aby odczytać od użytkownika pojedyncze słowo - Zapisać oryginalne słowo w osobnej tablicy znaków do wyświetlenia
- Obliczyć łączną liczbę znaków za pomocą
strlen() - Policzyć samogłoski, iterując po każdym znaku i sprawdzając, czy jest on jedną z samogłosek (a, e, i, o, u) zapisanych małą lub wielką literą
- Przekształcić słowo na wielkie litery za pomocą funkcji
toupper()w pętli - Wyświetlić wszystkie wyniki w przejrzystym, uporządkowanym formacie, umieszczając każdą informację w osobnym wierszu
Pamiętaj, aby dołączyć nagłówek <string.h> dla funkcji obsługujących ciągi znaków oraz nagłówek <ctype.h> dla funkcji konwersji znaków.
Wynik powinien wyświetlać wszystkie informacje w dokładnie następującym formacie:
Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]Ważne: Po znaku zachęty Enter a sentence: nie może występować znak nowej linii. Słowo Original: pojawia się w tym samym wierszu bezpośrednio po wczytaniu danych.
Na przykład, jeśli dane wejściowe to:
HelloWynik powinien wyglądać tak:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOTo końcowe wyzwanie łączy wszystkie opracowane w trakcie projektu funkcje przetwarzania tekstu: obsługę danych wejściowych, zliczanie znaków za pomocą strlen(), zliczanie samogłosek przy użyciu pętli i instrukcji warunkowych oraz konwersję na wielkie litery za pomocą toupper(). Program powinien prezentować przejrzyste, uporządkowane podsumowanie wyników analizy tekstu.
Spróbuj swoich sił
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char sentence[200];
printf("Enter a sentence: ");
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int length = strlen(sentence);
printf("Character count: %d\n", length);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < length; i++) {
char c = sentence[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
printf("Vowel count: %d\n", vowel_count);
printf("Uppercase: ");
for (int i = 0; i < length; i++) {
printf("%c", toupper(sentence[i]));
}
printf("\n");
return 0;
}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