Advertisement
Guest User

Untitled

a guest
Jan 12th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. void add_message_conversa(CORPUS *pc){
  2.  
  3. MENSAGEM *pnew = NULL, *paux=NULL, *pant = NULL;
  4. CONVERSA *cgets = NULL;
  5. char name[50] = "", mensagem[50] = "";
  6.  
  7. printf("Insira o nome do utilizador:");
  8. fgets(name, 100, stdin);
  9. // fflush(stdin);
  10. // gets(name);
  11.  
  12. //Assume a primeira conversa da lista do Corpus
  13. cgets = pc->pfirst;
  14. while (cgets != NULL && strcmp(cgets->nomeconversa,name)!=0) {
  15. cgets = cgets->pnext;
  16. }
  17.  
  18. if (cgets == NULL) {
  19. printf("Contacto nao existe");
  20. return;
  21. }
  22.  
  23. //Alocação de uma nova estrutura e inicialização das variaveis
  24. pnew = (MENSAGEM*)malloc(sizeof(MENSAGEM));
  25. pnew->pnext = NULL;
  26. pnew->timestamp = 0;
  27.  
  28. printf("Introduza o nome do utilizador:");
  29. fgets(pnew->username, 100, stdin);
  30. // fflush(stdin);
  31. // gets(pnew->username);
  32.  
  33. printf("Introduza a mensagem:");
  34. // fgets(mensagem, strlen(mensagem), stdin);
  35. fflush(stdin);
  36. gets(mensagem);
  37. pnew->mensagem = create_copy_dyn_string(mensagem);
  38.  
  39. //falta fazer o timestamp e da data - apenas estou a testar a ordenaçao
  40. printf("introduza o timestamp:");
  41. scanf("%d", &(pnew->timestamp));
  42.  
  43. //Se o apontador pmensagem == NULL, conversa->pmensagem assume esta nova estrutura
  44. if (cgets->pmensagem == NULL) {
  45. cgets->pmensagem = pnew;
  46. return;
  47. }
  48.  
  49. pant = NULL;
  50. paux = cgets->pmensagem;
  51. while (paux != NULL && pnew->timestamp > paux->timestamp) {
  52. pant = paux;
  53. paux = paux->pnext;
  54. }
  55.  
  56. //inserir na cabeça
  57. if (paux == cgets->pmensagem) {
  58. printf("A ser inserido na cabeça!\n");
  59. pnew->pnext = paux;
  60. cgets->pmensagem = pnew;
  61. return;
  62. }
  63.  
  64. //Inserir na cauda
  65. if (paux == NULL) {
  66. printf("A ser inserido na cauda!\n");
  67. pant->pnext = pnew;
  68. return;
  69. }
  70.  
  71. //Inserir no meio
  72. printf("A ser inserido no meio!\n");
  73. pnew->pnext = paux;
  74. pant->pnext = pnew;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement