Hey Leute, brauche schnelle und dringende Hilfe, verzweifle an einen Uni Beispiel, muss aus den folgenden Textinput:
oben sind immer die Namen mit GB Datum und unten bedeutet
1 <->2 das der erste mit den 2 befreundet ist usw
Weiters soll man auch weitergehen können und sagen wie tief man schauen will, also wenn zb 1 mit 2 befreundet ist, und dann 2 mit 3, dass man sagt 1 hat trotzdem 2 freunde...
Ich scheitere hier schon am verarbeiten der Textdatei in einen Array speichern, vll kann mir da jemand helfen.
Hier mein Ansatz (C)
Danke an alle schonmal 
Festellen können wievele Freunde jeder hatJohn,Smith,1964,11,11
John,Doe,1972,3,27
Susan,Blake,1957,5,3
Anna,Doe,1952,1,12
John,Doe,1970,9,21
~~~~~~~~~~~~~~~~~~~~~
1<->2
1<->3
2<->4
4<->5
3<->2
oben sind immer die Namen mit GB Datum und unten bedeutet
1 <->2 das der erste mit den 2 befreundet ist usw
Weiters soll man auch weitergehen können und sagen wie tief man schauen will, also wenn zb 1 mit 2 befreundet ist, und dann 2 mit 3, dass man sagt 1 hat trotzdem 2 freunde...
Ich scheitere hier schon am verarbeiten der Textdatei in einen Array speichern, vll kann mir da jemand helfen.
Hier mein Ansatz (C)
Code:
ErrCode parseRatings(IFB *ifb) {
int count_friends=0;
char name[20];
memset(&name[0], 0, sizeof(name));
char friends[20];
memset(&friends[0], 0, sizeof(friends));
int number=0;
char fName[20];
memset(&fName[0], 0, sizeof(fName));
char lName[20];
memset(&lName[0], 0, sizeof(lName));
int yYear, mMonth, dDay;
int place = 0;
int x = 0;
int ID = 0;
int temp;
int age;
int second = 0;
int sx = 0;
int i = 0;
if (ifb->input != NULL) {
while((temp = fgetc(ifb->input))!=EOF) {
if(place < 2) {
if(temp == 44) {
if (place == 0) {
strncpy(fName, name,x);
} else {
strncpy(lName, name,x);}
x=0;
place++;
} else if (temp == '~') {
second = 1;
//printf("Hallo");
}
else {
name[x] = temp;
x++;
}
}
else {
if((temp == 44 || temp == 10) && place !=5) {
if(place == 2) {yYear = number;} else if (place == 3) {mMonth = number;} else {dDay = number;}
place++;
number = 0;
x=0;
}
else {
number = (number*10) + (temp-48);
}
}
//printf("place %i",place);
if(temp == 10 && second == 0) {
ID++;
x = 0;
place = 0;
if(mMonth<= 1 ) {
if(dDay <= 15) {
age = 2013-yYear;
}
}
else {
age = 2012-yYear;
}
printf("ID: %i ", ID);
printf("Name: %s %s", fName, lName);
printf(", age %i",age);
printf(" with %i friends",count_friends);
printf("\n");
memset(&fName[0], 0, sizeof(fName));
memset(&lName[0], 0, sizeof(lName));
memset(&name[0], 0, sizeof(name));
yYear = 0;
mMonth = 0;
dDay = 0;
}
else if(second == 1){
if(temp != '~') {
putchar(temp);
if(temp == 10) {
}
if(temp != 10 && temp != '<' && temp != '>' && temp != '-') {
friends[i] = temp;
i++;
sx++;
}
}
}
}
}
printf("Friends 0,1 %c", friends[1]);
printf("sx %i",sx);
int friends_count[ID+1];
int a = 0;
while(a<ID) {
friends_count[a] = 0;
a++;
}
a=0;
while(a<sx) {
friends_count[friends[a]]++;
}
printf("Friendscount %i",friends_count[1];
//printf("Friends %i i %i",sx,i);
return SUCCESS;
}
