In Großbuchstaben umwandeln
Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 23 von 63.
Aufgabe
EinfachErweitere dein Textprogramm aus der vorherigen Lektion um eine Funktion zur Umwandlung in Großbuchstaben. Dein Programm sollte:
- Die Benutzerin oder den Benutzer auffordern, einen kurzen Satz einzugeben, indem es Folgendes ausgibt:
Enter a sentence:(ohne Zeilenumbruch am Ende) - Ein Zeichenarray namens
sentencemit 200 Elementen deklarieren, um die Eingabe zu speichern scanfmit dem Formatspezifizierer%sverwenden, um ein einzelnes Wort von der Benutzerin oder dem Benutzer einzulesen- Das gespeicherte Wort im folgenden Format ausgeben:
You entered: [word] strlen()verwenden, um die Gesamtzahl der Zeichen im Wort zu berechnen- Die Zeichenanzahl im folgenden Format ausgeben:
Character count: [count] - Die Länge mit
strlen()im folgenden Format ausgeben:Length: [length] - Mit einer Schleife jedes Zeichen im Wort durchlaufen, um die Vokale zu zählen
- Für jedes Zeichen prüfen, ob es ein Vokal (a, e, i, o, u) in Klein- oder Großschreibung ist
- Eine laufende Zählung der gefundenen Vokale führen
- Die Anzahl der Vokale im folgenden Format ausgeben:
Vowel count: [count] Uppercase:ausgeben und anschließend mit einer Schleife jedes Zeichen im Wort mithilfe der Funktiontoupper()in Großschreibung umwandeln und ausgeben
Denke daran, den Header <string.h> einzubinden, um die Funktion strlen() zu verwenden, sowie den Header <ctype.h>, um die Funktion toupper() zu verwenden.
Über toupper():
Die Funktion toupper() aus <ctype.h> wandelt ein einzelnes Zeichen in sein entsprechendes Großbuchstaben-Äquivalent um. Wenn das Zeichen bereits ein Großbuchstabe ist oder kein Buchstabe ist, wird es unverändert zurückgegeben.
Beispiel: toupper('a') gibt 'A' zurück, und toupper('Z') gibt 'Z' zurück.
Du kannst sie innerhalb einer Schleife verwenden, um jedes Zeichen einzeln umzuwandeln: printf("%c", toupper(sentence[i]));
Wichtig: Auf die Eingabeaufforderung Enter a sentence: darf kein Zeilenumbruch folgen. Verwende printf("Enter a sentence: "); ohne \n.
Deine Ausgabe sollte im folgenden Format angezeigt werden:
Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]Wenn die Eingabe beispielsweise lautet:
Programmingsollte deine Ausgabe folgendermaßen aussehen:
Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMINGDiese Herausforderung baut auf der vorherigen Lektion auf, indem sie mithilfe der Funktion toupper() aus der Bibliothek <ctype.h> eine Funktion zur Umwandlung in Großbuchstaben hinzufügt. Du musst eine Schleife verwenden, um jedes Zeichen im String zu durchlaufen und es in einen Großbuchstaben umzuwandeln. Anschließend gibst du das umgewandelte Ergebnis aus.
Probier es selbst
#include <stdio.h>
#include <string.h>
int main() {
printf("Enter a sentence: \n");
char sentence[200];
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int char_count = strlen(sentence);
printf("Character count: %d\n", char_count);
int length = strlen(sentence);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < strlen(sentence); 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);
return 0;
}Alle Lektionen in Logik & Ablauf
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Übe selbstständig: Online-C-Compiler