PfN 2019
Fragebogen
Fragebogen
-
- 1 / 6
-
Flashcards
ToDo: void reverse_lines(FILE *fpin)
How:
- fpin zeigt auf bereits geöffnete Datei
- zeilenweise mit fgets lesen
char *fgets(cher *str, int size, FILE *stream);
- nach stdout ausgeben
- begrenzte Zeilenlänge: 1024 Zeichen
- nutze Fkt. void reverse_string(char *str, size_t len)
angenommen sie sei gegeben.
void reverse_lines(FILE *fpin)
{
assert(fpin != NULL);
char *s=malloc(sizeof(*s)*1024);
assert(s != NULL);
while(fgets(s, 1024, fpin) != NULL)
{
reverse_string(s, strlen(s)-1);
printf("%s",s);
}
free(s);
}
void reverse_lines(FILE *fpin)
{
(1)
(2)
{
(3)
}
free(s);
}
ToDo: unsigned long *char_dist(const char *filename)
How:
- öffne Datei
- zeilenweise lesen
- Ergebnis (Verteilung) in Array speichern
begrenzte Größe: max. Wert, der vom Typ unsigned char gespeichert werden kann
unsigned long *char_dist(const char *filename)
{
assert(filename != NULL);
FILE fp = fopen(filename, "r");
assert(fp != NULL);
unsigned long *dist= calloc(UCHAR_MAX+1, sizeof(*dist);
assert(dist != NULL);
int c;
fseek(fp, 0, SEEK_SET);
while(c= fgetc(fp) != EOF) { dist[c]+=1;}
fclose(fp);
return dist;
}
unsigned long *char_dist(const char *filename)
{
(1)
(2)
assert(dist != NULL);
int c;
fseek(fp, 0, SEEK_SET);
(3)
fclose(fp);
return dist;
}
ToDo: size_t strlen_ptr(const char *s)
How:
- kein indexbasierter Zugriff!
size_t strlen_ptr(const char *s)
{
const char *s_ptr = s;
while(s_ptr =! '\0') { s_ptr++;}
return s_ptr - s;
}
size_t strlen_ptr(const char *s)
{
(1)
(2)
(3)
}