Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_NO_SECURE_WARNINGS
- #include <stdio.h>
- #include <stdint.h>
- #include <math.h>
- #include <stdlib.h>
- #include <string.h>
- //Aufgaben 1-7
- void Aufgabe1(char* inp, char* out);
- void Aufgabe2(char* inp, char* out);
- void Aufgabe3(char* inp, char* out);
- int Aufgabe4(char* inp, char* out);
- void Aufgabe5(const char* filename);
- void Aufgabe6(const char* filename);
- void Aufgabe7(const char* filename);
- //Aufgabe 8
- struct datum
- {
- int jahr;
- int mon;
- int tag;
- };
- typedef struct angestellt //FRAGE
- {
- char name[20];
- char vorname[20];
- struct datum alter;
- struct datum eigest;
- long gehalt;
- struct angestellt *next;
- }angestellt;
- //Aufgabe 9a)
- typedef struct bauteil bauteil;
- struct bauteil
- {
- char bez[50];
- int res;
- int res_ser;
- bauteil* next;
- };
- //Aufgabe 9 b, c)
- void ausgabe(bauteil* p);
- bauteil* eingabe(bauteil* start);
- void schaltung(bauteil* p);
- //Aufgabe 10a)
- typedef struct student student;
- struct student
- {
- char name[50];
- struct datum geburt;
- char geschlecht;
- int langzeit;
- student* next;
- };
- //Aufgabe 10b, c)
- void ausgabe_studente(student* p);
- student* eingabe_studenten(student* start);
- void ausgabe_langzeit_student(student* p);
- int main()
- {
- char filename[] = "Text.txt";
- char inp[50] = "Hallo Bulme";
- char out[50] = "";
- char filter[50] = "ABC123XYZ";
- char num[3][50] =
- {
- "123456"
- "Lol457"
- "XYZ123ABC"
- };
- int out_int;
- bauteil* list = NULL;
- student* first = NULL;
- //Aufgabe 1
- printf("Aufgabe 1: \n");
- Aufgabe1(inp, out);
- printf("%s\n\n", out);
- //Aufgabe 2
- printf("Aufgabe 2: \n");
- Aufgabe2(inp, out);
- printf("%s\n\n", out);
- //Aufgabe 3
- printf("Aufgabe 3: \n");
- memset(out, 0, sizeof(out));
- Aufgabe3(filter, out);
- printf("%s\n\n", out);
- //Aufgabe 4
- printf("Aufgabe 4: \n");
- int c;
- for (int i = 0; i < 3; i++)
- {
- if((c = Aufgabe4(num[i], &out_int)) == 0) //FRAGE
- {
- printf("Nur Nummern enthalten\n");
- }
- else
- {
- printf("%d Characters gefunden und ignoriert. \n", c);
- }
- printf("Umgewandelter String: %d\n", out_int);
- }
- //Aufgabe 5
- printf("\nAufgabe 5: \n");
- Aufgabe5(filename);
- //Aufgabe 6
- printf("\nAufgabe 6: \n");
- Aufgabe6(filename);
- //Aufgabe 7
- printf("\nAufgabe 7: \n");
- Aufgabe7(filename);
- //Aufnahme 9b)
- printf("\n Aufgabe 9b): ");
- for (int i = 0; i < 3; i++)
- {
- list = eingabe(list);
- }
- ausgabe(list);
- //Ausgabe 9c)
- printf("\nAufgabe 9c): ");
- schaltung(list);
- //Aufnahme 10b)
- printf("\nAufgabe 10b)\n");
- for (int i = 0; i < 3; i++)
- {
- first = eingabe_studenten(first);
- }
- ausgabe_studenten(first);
- //Aufgabe 10c)
- printf("\nAufgabe 10c)\n");
- ausgabe_langzeit_student(first);
- system("PAUSE");
- }
- void Aufgabe1(char* inp, char* out)
- {
- for (int i = 0; inp[i] != '\0'; i++)
- {
- if ('a' <= inp[i] && 'z' >= inp[i])
- {
- out[i] = inp[i] - 32;
- }
- else
- {
- out[i] = inp[i];
- }
- }
- }
- void Aufgabe2(char * inp, char * out)
- {
- for (int i = 0; inp[i] != '\0'; i++)
- {
- if ('a' <= inp[i] && 'z' >= inp[i])
- {
- out[i] = inp[i] - 32;
- }
- if ('A' <= inp[i] && 'Z' >= inp[i])
- {
- out[i] = inp[i] + 32;
- }
- }
- }
- void Aufgabe3(char* inp, char* out)
- {
- int c = 0;
- for (int i = 0 ; i < inp[i] != '\0'; i++)
- {
- if (inp[i] < '0' || inp[i] > '9')
- {
- out[c] = inp[i];
- c++;
- }
- }
- }
- int Aufgabe4(char* inp, int* out_int)
- {
- int c = 0;
- int exp;
- int ret = 0;
- *out_int = 0;
- int size = strlen(inp);
- for (int i = size - 1; i >= 0; i--)
- {
- if (inp[i] >= '0' && inp[i] <= '9')
- {
- //könnte durch (int)(pow(10, c) + 0.5) ersetzt werden
- exp = 1;
- for (int u = 0; u < c; u++)
- {
- exp *= 10;
- }
- *out_int += (int)(inp[i] - '0') * exp;
- c++;
- }
- else
- {
- ret++;
- }
- }
- return ret; //Gibt Anzahl von Zeichen zurück, NICHT IN AUFGABE 4 GEFRAGT
- }
- void Aufgabe5(const char* filename)
- {
- FILE* file;
- fopen_s(&file, filename, "r");
- int Großbuchstaben = 0;
- int Kleinbuchstaben = 0;
- int Ziffern = 0;
- int Zeichen = 0;
- int c;
- while ((c = fgetc(file)) != EOF) //KLAMMERN!
- {
- if (c >= 'A' && c <= 'Z')
- {
- Großbuchstaben++;
- }
- else if (c >= 'a' && c <= 'z')
- {
- Kleinbuchstaben++;
- }
- else if (c >= '0' && c <= '9')
- {
- Ziffern++;
- }
- else if (c != ' ')
- {
- Zeichen++;
- }
- }
- printf(
- "Gro\341buchstaben: %d\n"
- "Kleinbuchstaben: %d\n"
- "Ziffern: %d\n"
- "Sonstige Zeichen: %d\n\n",
- Großbuchstaben, Kleinbuchstaben, Ziffern, Zeichen);
- fclose(file);
- }
- void Aufgabe6(const char * filename)
- {
- FILE* file;
- fopen_s(&file, filename, "r");
- int c;
- int freq[255] = { 0 };
- while ((c = fgetc(file)) != EOF)
- {
- if (c <= 255 && c >= 32)
- {
- freq[c]++;
- }
- }
- for (int i = 0; i < 255; i++)
- {
- if (freq[i] != 0)
- {
- printf("%c: %d\n\n", i, freq[i]);
- }
- }
- fclose(file);
- }
- void Aufgabe7(const char * filename)
- {
- FILE* file;
- fopen_s(&file, filename, "r");
- int c;
- int count = 0;
- while ((c = fgetc(file)) != EOF)
- {
- count++;
- printf("%x", c);
- if (count % 16 == 0)
- {
- printf("\n");
- }
- }
- fclose(file);
- printf("\n");
- }
- void ausgabe(bauteil* p)
- {
- if (p == NULL)
- {
- printf("Keine Bauteile gefunden. \n");
- return 0;
- }
- do
- {
- printf(
- "\nBezeichnung: %s\n"
- "Widerstand: %d\n"
- "widerstandsreihe: E%d\n",
- p->bez, p->res, p->res_ser);
- p = p->next;
- } while (p != NULL);
- }
- //Nur Zum Testen
- bauteil* eingabe(bauteil* start)
- {
- bauteil* neu = (bauteil*)malloc(sizeof(struct bauteil));
- strcpy_s(neu->bez, sizeof(neu->bez), "Widerstabd 360Grad");
- neu->res = 480;
- neu->res_ser = 24;
- neu->next = start;
- return neu;
- }
- void schaltung(bauteil* p)
- {
- int res = 0;
- if (p == NULL)
- {
- printf("Keine Bauteile gefunden.\n");
- return;
- }
- do
- {
- printf(
- "Bezeichnung: %s\n"
- "Widerstand: %d\n"
- "Widerstandsreihe: E%d\n\n",
- p->bez, p->res, p->res_ser);
- res += p->res;
- p = p->next;
- } while (p != NULL);
- printf("Gesamtwiderstand: %d Ohm\n", res);
- }
- void ausgabe_studenten(bauteil* p)
- {
- if (p == NULL)
- {
- printf("Keine Studenten gefunden.\n");
- return;
- }
- do
- {
- printf(
- "Name: %s\n"
- "Geburtsdatum: %d.%d.%d\n"
- "Geschlecht: %c\n"
- "Art: ",
- p->name, p->geburt.tag, p->geburt.mom, p->geburt.jahr, p->geschlecht);
- if (p->langzeit == 1)
- {
- printf("Langzeit");
- }
- else
- {
- printf("Normal");
- }
- p = p->next;
- } while (p != NULL);
- }
- //Nur Zum Testen
- student* eingabe_studenten(student* start)
- {
- student* neu = (student*)malloc(sizeof(struct student));
- neu->geschlecht = 'm';
- neu->geburt.jahr = 2002;
- neu->geburt.mon = 4;
- neu->geburt.tag = 13;
- strcpy_s(neu->name, sizeof(neu->name), "Rolf");
- neu->langzeit = 1;
- neu->next = start;
- return neu;
- }
- void ausgabe_langzeit_studenten(student* p)
- {
- int count = 0;
- if (p == NULL)
- {
- printf("Keine Studenten gefunden.\n");
- return;
- }
- printf("Langzeitstudenten: \n\n");
- do
- {
- if (p->langzeit == 1)
- {
- count = 1;
- printf(
- "Name: %s\n"
- "Geburtsdatum: %d.%d.%d\n"
- "Geschlecht: %c\n",
- p->
- )
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement