Projekt: Kontakt-Struct definieren
Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 50 von 63.
Aufgabe
EinfachDu erstellst ein einfaches Tool zur Eingabe von Kontakten, das zeigt, wie struct zusammengehörige Daten in realen Anwendungen organisieren können.
Erstelle ein C-Programm, das eine Contact-Struktur definiert, um Kontaktinformationen zu speichern. Dein Programm sollte:
- Eine
structnamensContactmit den folgenden Mitgliedern definieren:- Ein Zeichenarray
namemit der Größe 50 zum Speichern des Namens des Kontakts - Ein Zeichenarray
phonemit der Größe 20 zum Speichern der Telefonnummer des Kontakts - Ein Zeichenarray
emailmit der Größe 40 zum Speichern der E-Mail-Adresse des Kontakts - Eine Ganzzahl
agezum Speichern des Alters des Kontakts
- Ein Zeichenarray
- In der main-Funktion:
- Eine
Contact-Variable namenspersonerstellen - Die folgenden Eingabewerte einlesen und sie mithilfe des Punktoperators den Strukturmitgliedern zuweisen:
- Eine Zeichenkette für den Namen einlesen und sie
person.namezuweisen - Eine Zeichenkette für die Telefonnummer einlesen und sie
person.phonezuweisen - Eine Zeichenkette für die E-Mail-Adresse einlesen und sie
person.emailzuweisen - Eine Ganzzahl für das Alter einlesen und sie
person.agezuweisen
- Eine Zeichenkette für den Namen einlesen und sie
- 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 kleiner als 10 Zeichen ist,
Invalid phone numberausgeben und das Programm beenden
- Wenn das Alter kleiner als 0 oder größer als 120 ist,
- Wenn alle Validierungen erfolgreich sind, die Kontaktinformationen in diesem exakten Format ausgeben:
Contact Information:Name: [name]Phone: [phone]Email: [email]Age: [age]
- Zusätzliche Informationen berechnen und ausgeben:
- Die Länge des Namens mithilfe von
strlen()im folgenden Format ausgeben:Name length: [length] - 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 mithilfe von
- Eine
Diese Herausforderung prüft dein Verständnis der struct-Definition, der Deklaration von Mitgliedern mit geeigneten Datentypen und Größen, des Zugriffs auf Strukturmitglieder mithilfe des Punktoperators, der Eingabevalidierung und der Verwendung von Zeichenkettenfunktionen wie strlen() mit Strukturmitgliedern. Du übst, eine praktische Datenstruktur zu erstellen, 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 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-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Übe selbstständig: Online-C-Compiler