#include <stdio.h>
#include <string.h>
int main(int argc, char **argv){
char buf[BUFSIZ];
short a = 0;
short b = 0;
short anzc=0;
short anzd=0;
char (*c)[BUFSIZ]; /* das hier war falsch, jetzt ist es korrekt ein Zeiger d.h. also quasi eine Liste auf String mit max. BUFSIZ-1 Länge */
short *d;
short i;
while (fgets(buf
, BUFSIZ
, stdin
) != NULL
) {
if (buf
[strlen(buf
)-1] == '\n') { char *isa
= strstr(buf
, "A:")==buf
; char *isb
= strstr(buf
, "B:")==buf
; char *isc
= strstr(buf
, "C:")==buf
; char *isd
= strstr(buf
, "D:")==buf
; if(isa){
char *sep = buf+2;
}else if(isb){
char *sep = buf+2;
c
= calloc(b
,BUFSIZ
); /* hier natürlich einen Speicherbereich definieren und anschließend als Stringliste gebrauchen! */ }else if(isc){
char *sep = buf+2;
strcpy(c
[anzc
],sep
); /* und hier natürlich keine einfache Zuweisung, sondern strcpy */ anzc++;
}else if(isd){
char *sep = buf+2;
anzd++;
}
}
}
for(i=0; i<anzc;i++){
printf("%s",c
[i
]); /* hier dann natürlich Strings ausgeben mit %s und nicht Zeichen %c wie du */ }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KXsKICAgCiAgICBjaGFyIGJ1ZltCVUZTSVpdOwogICAgc2hvcnQgYSA9IDA7CiAgICBzaG9ydCBiID0gMDsKICAgIHNob3J0IGFuemM9MDsKICAgIHNob3J0IGFuemQ9MDsKICAgIGNoYXIgKCpjKVtCVUZTSVpdOyAvKiBkYXMgaGllciB3YXIgZmFsc2NoLCBqZXR6dCBpc3QgZXMga29ycmVrdCBlaW4gWmVpZ2VyIGQuaC4gYWxzbyBxdWFzaSBlaW5lIExpc3RlIGF1ZiBTdHJpbmcgbWl0IG1heC4gQlVGU0laLTEgTMOkbmdlICovCiAgICBzaG9ydCAqZDsKIAogICAgc2hvcnQgaTsKICAgCiAKICAgIHdoaWxlIChmZ2V0cyhidWYsIEJVRlNJWiwgc3RkaW4pICE9IE5VTEwpCiAgICB7CiAgICAgICAgaWYgKGJ1ZltzdHJsZW4oYnVmKS0xXSA9PSAnXG4nKSB7CiAgICAgICAgICAgIGNoYXIgKmlzYSA9IHN0cnN0cihidWYsICJBOiIpPT1idWY7CiAgICAgICAgICAgIGNoYXIgKmlzYiA9IHN0cnN0cihidWYsICJCOiIpPT1idWY7CiAgICAgICAgICAgIGNoYXIgKmlzYyA9IHN0cnN0cihidWYsICJDOiIpPT1idWY7CiAgICAgICAgICAgIGNoYXIgKmlzZCA9IHN0cnN0cihidWYsICJEOiIpPT1idWY7CiAgICAgICAgICAgIGlmKGlzYSl7CiAgICAgICAgICAgICAgICBjaGFyICpzZXAgPSBidWYrMjsKICAgICAgICAgICAgICAgIGEgPSBhdG9pKHNlcCk7CiAgICAgICAgICAgICAgICBkID0gbWFsbG9jKGEqc2l6ZW9mKHNob3J0KSk7CiAgICAgICAgICAgIH1lbHNlIGlmKGlzYil7CiAgICAgICAgICAgICAgICAgY2hhciAqc2VwID0gYnVmKzI7CiAgICAgICAgICAgICAgICBiID0gYXRvaShzZXApOwogICAgICAgICAgICAgICAgYyA9IGNhbGxvYyhiLEJVRlNJWik7IC8qIGhpZXIgbmF0w7xybGljaCBlaW5lbiBTcGVpY2hlcmJlcmVpY2ggZGVmaW5pZXJlbiB1bmQgYW5zY2hsaWXDn2VuZCBhbHMgU3RyaW5nbGlzdGUgZ2VicmF1Y2hlbiEgKi8KICAgICAgICAgICAgfWVsc2UgaWYoaXNjKXsKICAgICAgICAgICAgICAgIGNoYXIgKnNlcCA9IGJ1ZisyOwogICAgICAgICAgICAgICAgc3RyY3B5KGNbYW56Y10sc2VwKTsgLyogdW5kIGhpZXIgbmF0w7xybGljaCBrZWluZSBlaW5mYWNoZSBadXdlaXN1bmcsIHNvbmRlcm4gc3RyY3B5ICovCiAgICAgICAgICAgICAgICBhbnpjKys7CiAgICAgICAgICAgIH1lbHNlIGlmKGlzZCl7CiAgICAgICAgICAgICAgICBjaGFyICpzZXAgPSBidWYrMjsKICAgICAgICAgICAgICAgIGRbYW56ZF0gPSBhdG9pKHNlcCk7CiAgICAgICAgICAgICAgICBhbnpkKys7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgIH0KIAogICAgcHJpbnRmKCIlaVxuIiwgYW56Yyk7CiAgICBwcmludGYoIiVpXG4iLCBhbnpkKTsKIAogIGZvcihpPTA7IGk8YW56YztpKyspewogICAgcHJpbnRmKCIlcyIsY1tpXSk7IC8qIGhpZXIgZGFubiBuYXTDvHJsaWNoIFN0cmluZ3MgYXVzZ2ViZW4gbWl0ICVzIHVuZCBuaWNodCBaZWljaGVuICVjIHdpZSBkdSAqLwogIH0KIAogIHJldHVybiAwOwp9