fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. static inline int onerror(char **result){
  6. *result = malloc(6);
  7. strcpy(*result, "error");
  8. return 0;
  9. }
  10.  
  11. int addStringAtoB(char string[], char **result){
  12. static const char *delimiter = " ,";
  13. char *token = strtok( string, delimiter);
  14.  
  15. if (token == NULL)
  16. return onerror(result);
  17.  
  18. char *stringA = token;
  19.  
  20. token = strtok( NULL, delimiter);
  21. if (token == NULL)
  22. return onerror(result);
  23.  
  24. char *stringB = token;
  25. char *endp;
  26. int valA = strtol(stringA, &endp, 10);
  27. if(*endp != '\0')
  28. return onerror(result);
  29. int valB = strtol(stringB, &endp, 10);
  30. if(*endp != '\0')
  31. return onerror(result);
  32.  
  33. int val_result = valA + valB;
  34. int len = snprintf(NULL, 0, "%d", val_result) + 1;
  35. *result = malloc(len);
  36. snprintf(*result,len , "%d", val_result);
  37. return 1;
  38. }
  39.  
  40. void test(void) {
  41. char A[] = "123,563";
  42. char *result = NULL;
  43. addStringAtoB(A, &result);
  44. printf("\n result :----- %s \n", result);
  45. free(result);
  46. }
  47.  
  48. int main(void){
  49. test();
  50. }
Success #stdin #stdout 0s 2300KB
stdin
Standard input is empty
stdout
 result :----- 686