fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define MAX_LINE 500
  6.  
  7. double strtodouble (char *array[MAX_LINE], int position){
  8. static char temp[MAX_LINE];
  9. int i, pos_temp = 0;
  10. for (i = 0; array[i] != '\0'; ++i){
  11. if (array[position][i] == ','){
  12. temp[pos_temp++] = '.';
  13. }
  14. else if (array[position][i] != '.'){
  15. temp[pos_temp++] = array[position][i];
  16. }
  17. }
  18. temp[pos_temp] = '\0';
  19.  
  20. return atof(temp);
  21. }
  22.  
  23. int main(void)
  24. {
  25.  
  26. char sFrase[]="1337-000/2018 01/10/2018 KI BARATO MERCEARIA DE DESCONT SECRETARIA DA CAMARA SECRETARIA DA CAMARA AÇÃO LEGISLATIVA Dispensa - Isento Compras e Serviços 2.343,50 343,40 343,30";
  27. int count = 0;
  28. char *p = strtok(sFrase, " ");
  29. char *array[500];
  30. //float valor = atof(*array);
  31. double num1, num2, num3;
  32.  
  33. while (p)
  34. {
  35. array[count] = p;
  36.  
  37. p = strtok (NULL, " ");
  38.  
  39. count++;
  40. }
  41.  
  42. //printf("%s\n", array[cont-1]);
  43. //printf("%s\n", array[cont-2]);
  44. //printf("%s\n", array[cont-3]);
  45.  
  46. //array[cont-3] = 343,50
  47. //ptr=array[cont-3][3]
  48.  
  49. num1 = strtodouble(array, count-3);
  50. printf("\nESTE É O VALOR EMPENHADO --> %2.2f", num1 );
  51.  
  52. num2 = strtodouble(array, count-2);
  53. printf("\nESTE É O VALOR LiQUIDADO --> %2.2f", num2 );
  54.  
  55. num3 = strtodouble(array, count-1);
  56. printf("\nESTE É O VALOR PAGO --> %2.2f\n", num3 );
  57.  
  58. return 0;
  59. }
Success #stdin #stdout 0s 9424KB
stdin
Standard input is empty
stdout
ESTE É O VALOR EMPENHADO --> 2343.50
ESTE É O VALOR LiQUIDADO --> 343.40
ESTE É O VALOR PAGO --> 343.30