// ToString des infos pour un groupe char* groupeInfoToString (Groupe groupe) { assert ( groupe != NULL && "groupe doit etre un pointeur non NULL" ); int nbr = groupe->nbrInfo; char* reponse; if ( nbr == 1 ) { reponse = (char*) malloc ( ((int) strlen (infoToString(groupe->info[0])) + 1) * sizeof(char) ); sprintf (reponse, "%s", infoToString(groupe->info[0]) ); } else { reponse = (char*) malloc ( ((int) strlen (infoToString(groupe->info[0])) + 1 + 1) * sizeof(char) ); sprintf (reponse, "%s\n", infoToString(groupe->info[0]) ); } int i; for ( i=1; i < nbr; i++ ) { int l = (int) strlen (reponse); char* info = infoToString (groupe->info[i]); if ( i != (nbr-1) ) { reponse = (char*) realloc ( reponse, ((l + (int)strlen(info) + 1 + 1) * sizeof(char)) ); sprintf (reponse, "%s%s\n", reponse, info); } else { reponse = (char*) realloc ( reponse, ((l + (int)strlen(info) + 1) * sizeof(char)) ); sprintf (reponse, "%s%s", reponse, info); } } return reponse; }
void clnt_to_str(struct client *clnt, char str[]){ int str_len; char buf[100]; sprintf(str, "--------[%s] client's info-------\n", clnt->info.name); infoToString(clnt->info, buf); strcat(str, buf); }
void allConnectClient(struct client clnt[], int clnt_num, char* buf){ int i; char buf2[200]; sprintf(buf, "\n---------<connected user>---------------\n\n"); for(i=0; i<clnt_num; i++){ infoToString(clnt[i].info, buf2); strcat(buf, buf2); strcat(buf, "\n"); } strcat(buf, "\n"); }
//Devuelve una cadena con cada elemento de la lista en forma de matriz p.ej. {1,2,3,4,...} char *listaToString(LISTA l) { static char aux[4096]; // cadena lo suficientemente grande como para albergar a la lista strcpy(aux,"{"); // inicializamos la cadena aux con una llave abierta while(l!=NULL) { strcat(aux,infoToString(l->info)); if (l->sig!=NULL) { strcat(aux,","); } l=l->sig; } strcat(aux,"}"); // cerramos la matriz return aux; }
void rankToString(struct info info_ary[], int info_num, char* buf){ struct info sort_ary[100]; int i; char buf2[100]; sortInfo(info_ary, sort_ary, info_num); sprintf(buf, "---------<Rank>---------\n"); for(i=0; i<info_num && i<10; i++){ infoToString(sort_ary[i], buf2); strcat(buf, buf2); strcat(buf, "\n"); } }