Finale Ausgabe
Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 24 von 63.
Aufgabe
EinfachVervollständigen Sie Ihr Text-Utility-Programm, indem Sie alle Funktionen, die Sie in den vorangegangenen Lektionen erstellt haben, in einer einzigen, umfassenden Ausgabe integrieren. Ihr Programm sollte:
- Den Benutzer auffordern, einen kurzen Satz einzugeben, indem es Folgendes ausgibt:
Enter a sentence:(kein Zeilenumbruch am Ende — verwenden Sieprintf("Enter a sentence: "), nichtprintf("Enter a sentence: \n")) - Ein Zeichen-Array namens
sentencemit 200 Elementen deklarieren, um die Eingabe zu speichern scanfmit dem Formatbezeichner%sverwenden, um ein einzelnes Wort vom Benutzer einzulesen- Das ursprüngliche Wort in einem separaten Zeichen-Array für Anzeigezwecke speichern
- Die Gesamtzahl der Zeichen mit
strlen()berechnen - Die Vokale zählen, indem Sie jedes Zeichen durchlaufen und prüfen, ob es mit einem Vokal (a, e, i, o, u) in Klein- oder Großschreibung übereinstimmt
- Das Wort mithilfe der Funktion
toupper()in einer Schleife in Großbuchstaben umwandeln - Alle Ergebnisse in einem sauberen, organisierten Format anzeigen, wobei jede Information in einer separaten Zeile steht
Denken Sie daran, den Header <string.h> für String-Funktionen und den Header <ctype.h> für Zeichenumwandlungsfunktionen einzubinden.
Ihre Ausgabe sollte alle Ergebnisse im folgenden exakten Format anzeigen:
Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]Wichtig: Nach der Aufforderung Enter a sentence: darf kein Zeilenumbruch folgen. Das Wort Original: erscheint in derselben Zeile unmittelbar nachdem die Eingabe gelesen wurde.
Wenn die Eingabe zum Beispiel wie folgt lautet:
HelloSollte Ihre Ausgabe so aussehen:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLODiese abschließende Herausforderung führt alle Textverarbeitungsfunktionen zusammen, die Sie im Laufe des Projekts entwickelt haben: Eingabeverarbeitung, Zeichenzählung mit strlen(), Vokalzählung mit Schleifen und bedingten Anweisungen sowie die Umwandlung in Großbuchstaben mit toupper(). Das Programm soll eine saubere, organisierte Zusammenfassung der Ergebnisse der Textanalyse präsentieren.
Probier es selbst
#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;
}Alle Lektionen in Logic & Flow
1Zeiger-Grundlagen
Was ist ein Zeiger?Zeiger deklarierenDer Adressoperator (&)Der Dereferenzierungsoperator (*)NULL-ZeigerZusammenfassung: Zeiger-Grundlagen4Projekt: Einfaches Text-Tool
ProjektübersichtZeichen zählen2Pointer und Arrays
Array-Namen als PointerArray-Elemente - PointerPointer-ArithmetikPointer vergleichenWiederholung: Array-Durchlauf mit Pointern5Zeiger und Funktionen
Wertübergabe (Pass-by-Value)Zeiger an Funktionen übergebenVariablen über Zeiger ändernEin klassisches Beispiel: SwapArrays an Funktionen übergebenZusammenfassung: Zeiger als Funktionsargumente8Structs und Zeiger
Zeiger auf StructsDer Pfeiloperator (->)Structs per Wert übergebenÜbergabe von Struct-ZeigernDynamische Allokation von StructsZusammenfassung: Struct ändern - Ptr11Finale Wiederholungsaufgaben
Wiederholung: Dynamische String-KonkatenationWiederholung: Array von StructsWiederholung: Wortfrequenz-Zähler3Character-Arrays und Strings
Strings als char-ArraysDer Null-TerminatorString-Eingabe mit scanfVerwendung von strlen()Verwendung von strcpy()Verwendung von strcat()Verwendung von strcmp()Zusammenfassung: Grundlegende String-Funktionen