Quote:
Originally Posted by
kris26
Thanks, Corona and Don.
Don, while i was reading ur reply to figure out my mistake, i realize tat i<100 was juz a typo, i wanted to set it i<10. Btw, thanks for tis new lesson
I wont quit programming, i feel it is fun to solve problem.
Corona, so i hav check out tis ASCII character set, yea i found tat 1st 16 character of ASCII character r non printable control characters. I wonder if 0 = 0, 1 = 1, 2 =2 and so forth, and '0' = 48, why will it bcome 1 when we minus '1' - '0' and not a non printable control characters? If we add '0' to 1, will it bcome bak '1' or as u said '0' = 48 and bcome 49?? How do dey differentiate it is a character set or an integer??
Sorry everyone who r trying to reply me. I feel tat im annoying, i hope tat u all don mind to answer my question
The C Standard requires:
Quote:
In both the source and execution basic character sets, the value of each character after 0 in the above list of decimal digits shall be one greater than the value of the previous.
The reference to
the above list is the list of the ten decimal digits starting with 0 and followed in order the by the digits 1 through 9. In a C source program an integer valued decimal digit will never appear in quotes; the code representing the character zero will be in single quotes (e.g., '0') and the code representing the character zero when it is part of a string of characters will be in double quotes (e.g., "0369").
In ASCII the character '0' has decimal value 48 (as you already know). In EBCDIC the character '0' has decimal value 240. If you want to write code that will only work when using code sets with an ASCII base, you can convert convert a character c that represents one of the decimal digits to the corresponding decimal value using
c - 48. If you want to write code that will only work when using an EBCDIC code set, you can use
c - 240 for the same conversion. If you want to right an expression that will work with portably with ASCII, EBCDIC, or any other codeset supported for use by C on your system, you can use
c - '0'.
Note that in C, '0' is a character but is also an integral value that can be used in an arithmetic expression. The integer constant 3 always has decimal value 3. The integer constant '3' has a decimal value that varies depending on what character set is being used. The integer value of the byte in a string that contains the character '6' has the same decimal value of the integer constant '6' which will alway be 6 more than the decimal value of the integer constant '0'.