Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h> //for strcpy
- #include <ctype.h> //for isdigit
- void searchList(struct Node **it, char **name, char **adresse, int *plz);
- struct Node{
- char *name;
- char *adresse;
- int plz;
- struct Node *next;
- struct Node *prev;
- };
- int main (){
- struct Node n1;
- struct Node n2;
- struct Node n3;
- struct Node n4;
- struct Node n5;
- struct Node n6;
- n1.name = calloc(25, sizeof(char));
- n1.adresse = calloc(40, sizeof(char));
- strcpy(n1.name, "Eva Lackner");
- strcpy(n1.adresse, "Hans-Radl Straße 9");
- n1.plz = 1030;
- n2.name = calloc(25, sizeof(char));
- n2.adresse = calloc(40, sizeof(char));
- strcpy(n2.name, "Erwin Unterlechner");
- strcpy(n2.adresse, "Udo Jürgens Gasse 1");
- n2.plz = 4040;
- n3.name = calloc(25, sizeof(char));
- n3.adresse = calloc(40, sizeof(char));
- strcpy(n3.name, "Mariam Lauterbach");
- strcpy(n3.adresse, "Achingerstraße 44");
- n3.plz = 1200;
- n4.name = calloc(25, sizeof(char));
- n4.adresse = calloc(40, sizeof(char));
- strcpy(n4.name, "Gerhard-Yusuf Iremat");
- strcpy(n4.adresse, "Laudongasse 7");
- n4.plz = 1080;
- n5.name = calloc(25, sizeof(char));
- n5.adresse = calloc(40, sizeof(char));
- strcpy(n5.name, "Meliha Arndt");
- strcpy(n5.adresse, "Alsterstraße 5");
- n5.plz = 5070;
- n6.name = calloc(25, sizeof(char));
- n6.adresse = calloc(40, sizeof(char));
- strcpy(n6.name, "Bruno Alplechner");
- strcpy(n6.adresse, "Grüntorstraße 88");
- n6.plz = 1090;
- struct Node *list = NULL;
- list = &n1;
- n1.next = &n2;
- n1.prev = NULL;
- n2.next = &n3;
- n2.prev = &n1;
- n3.next = &n4;
- n3.prev = &n2;
- n4.next = &n5;
- n4.prev = &n3;
- n5.next = &n6;
- n5.prev = &n4;
- n6.next = NULL;
- n6.prev = &n5;
- printf("Alle Kontakte:\n");
- struct Node *it = list;
- while (it != NULL){
- printf("%s, %s, %d\n", it->name, it->adresse, it->plz);
- it = it -> next;
- }
- printf("\nWiener Kontakte:\n");
- it = &n1;
- searchList(it, it->name, it->adresse, &plz);
- return EXIT_SUCCESS;
- }
- void searchList(struct Node **it, char **name, char **adresse, int *plz){
- while (it != NULL){
- int first = *plz; //Find out the first digit
- // Remove last digit from number till only one digit is left
- while(first >= 10)
- {
- first = first / 10;
- }
- if (first == 1){ //if first digit is 1
- printf("%s, %s, %d\n", name, adresse, plz);
- it = it -> next;
- }
- else{
- it = it -> next;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement