It is a character which represents the digit zero.
Internally, each character can be represented by a number, for example 'A' is 65 and '0' is 48 in the ASCII code.
The reason why it is used is to convert to/from ordinary text and an actual number which can be used in computations.
so why does it have to put '0' while you can do arithmetic operations with just a normal integer 0 (w/o quotation)?
Because integers ans string are represented differently. result is a string, so you want the digits you store into it to be in character representation. The decimal value of ASCII '0' is 48. So you have to bias the integer digits you store into result by that.
in line 41....does it mean you are adding the sum of the character zero and carry to result?
carry and '0' are converted to a character value, then that character value and the previous result string are concatentate and stored in result.
'0' is the integral offset into the ASCII table where the numbers are represented. To turn an ASCII number ('0' - '9') into its decimal representation (0 - 9) you can subtract the offset.