Projekt: Kontakt-Struct definieren
Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 50 von 63.
Aufgabe
EinfachSie werden ein einfaches Tool zur Kontakterfassung erstellen, das zeigt, wie Structs verwandte Daten in realen Anwendungen organisieren können.
Erstellen Sie ein C-Programm, das ein Contact-Struct definiert, um Kontaktinformationen zu speichern. Ihr Programm sollte:
- Ein
structnamensContactmit den folgenden Mitgliedern definieren:- Ein Zeichen-Array
namemit der Größe 50, um den Namen des Kontakts zu speichern - Ein Zeichen-Array
phonemit der Größe 20, um die Telefonnummer des Kontakts zu speichern - Ein Zeichen-Array
emailmit der Größe 40, um die E-Mail-Adresse des Kontakts zu speichern - Ein Integer
age, um das Alter des Kontakts zu speichern
- Ein Zeichen-Array
- In der main-Funktion:
- Eine
Contact-Variable namenspersonerstellen - Die folgenden Eingabewerte lesen und sie den Struct-Mitgliedern unter Verwendung des Punkt-Operators zuweisen:
- Einen String für den Namen lesen und ihn
person.namezuweisen - Einen String für die Telefonnummer lesen und ihn
person.phonezuweisen - Einen String für die E-Mail lesen und ihn
person.emailzuweisen - Einen Integer für das Alter lesen und ihn
person.agezuweisen
- Einen String für den Namen lesen und ihn
- Nach dem Einlesen aller Werte die folgenden Validierungsprüfungen durchführen:
- Wenn das Alter kleiner als 0 oder größer als 120 ist,
Invalid ageausgeben und das Programm beenden - Wenn die Länge der Telefonnummer weniger als 10 Zeichen beträgt,
Invalid phone numberausgeben und das Programm beenden
- Wenn das Alter kleiner als 0 oder größer als 120 ist,
- Wenn alle Validierungen bestanden sind, die Kontaktinformationen in genau diesem Format ausgeben:
Contact Information:Name: [name]Phone: [phone]Email: [email]Age: [age]
- Zusätzliche Informationen berechnen und ausgeben:
- Die Länge des Namens mit
strlen()im FormatName length: [length]ausgeben - Die Alterskategorie bestimmen und ausgeben:
- Wenn das Alter zwischen 0 und 17 liegt:
Category: Minor - Wenn das Alter zwischen 18 und 64 liegt:
Category: Adult - Wenn das Alter 65 oder höher ist:
Category: Senior
- Wenn das Alter zwischen 0 und 17 liegt:
- Die Länge des Namens mit
- Eine
Diese Herausforderung testet Ihr Verständnis der Struct-Definition, der Deklaration von Mitgliedern mit geeigneten Datentypen und Größen, des Zugriffs auf Struct-Mitglieder mit dem Punkt-Operator, der Eingabevalidierung und der Verwendung von String-Funktionen wie strlen() mit Struct-Mitgliedern. Sie üben das Erstellen einer praktischen Datenstruktur, die als Grundlage für ein Kontaktverwaltungssystem dienen könnte.
Probier es selbst
#include <stdio.h>
#include <string.h>
// TODO: Definieren Sie hier das Contact-Struct
int main() {
// TODO: Erstellen Sie eine Contact-Variable namens person
// Eingabewerte lesen
scanf("%s", /* TODO: person.name zuweisen */);
scanf("%s", /* TODO: person.phone zuweisen */);
scanf("%s", /* TODO: person.email zuweisen */);
scanf("%d", /* TODO: person.age zuweisen */);
// TODO: Schreiben Sie unten Ihren Validierungs- und Ausgabecode
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-Funktionen6Speicherverwaltung
Stack vs. Heap SpeicherDynamische Allokation - malloc()Verwendung von sizeof() für die AllokationÜberprüfung auf AllokationsfehlerSpeicher freigeben mit free()Allokation mit calloc()Rückblick: Dynamische Arrays9Projekt: Einfache Kontakteingabe
Projekt: Kontakt-Struct definierenFunktion zum Erstellen eines Kontakts