home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / ctutor1.zip / CHAP13.TXT < prev    next >
Text File  |  1989-11-10  |  5KB  |  176 lines

  1.  
  2.  
  3.  
  4.  
  5.                                                    Chapter 13
  6.                                CHARACTER AND BIT MANIPULATION
  7.  
  8.  
  9. UPPER AND LOWER CASE
  10. ____________________________________________________________
  11.  
  12. Load and display the program UPLOW.C for an     =============
  13. example of a program that does lots of             UPLOW.C
  14. character manipulation.  More specifically,     =============
  15. it changes the case of alphabetic characters. 
  16. It illustrates the use of four functions that
  17. have to do with case.  It should be no problem for you to
  18. study this program on your own and understand how it works. 
  19. The four functions on display in this program are all within
  20. the user written function, mix_up_the_chars().  Compile and
  21. run the program with the file of your choice.  The four
  22. functions are;
  23.  
  24.      isupper(c);     Is the character upper case?
  25.      islower(c);     Is the character lower case?
  26.      toupper(c);     Make the character upper case.
  27.      tolower(c);     Make the character lower case.
  28.  
  29. Many more classification and conversion routines should be
  30. listed in the reference material for your compiler.
  31.  
  32.  
  33.  
  34. CLASSIFICATION OF CHARACTERS
  35. ____________________________________________________________
  36.  
  37. Load and display the next program, CHARCLAS.C  ==============
  38. for an example of character counting.  We        CHARCLAS.C
  39. have repeatedly used the backslash n           ==============
  40. character representing a new line.  These
  41. are called escape sequences, and some of the
  42. more commonly used are defined in the following table;
  43.  
  44.      \n     Newline
  45.      \t     Tab
  46.      \b     Backspace
  47.      \"     Double quote
  48.      \\     Backslash
  49.      \0     NULL (zero)
  50.  
  51. Consult your compiler documentation for a complete list of
  52. escape sequences available with your compiler. 
  53.  
  54. By preceding each of the above characters with the backslash
  55. character, the character can be included in a line of text for
  56. display, or printing.  In the same way that it is perfectly
  57. all right to use the letter n in a line of text as a part of
  58.  
  59.                                                     Page 13-1
  60.  
  61.                   Chapter 13 - Character and Bit Manipulation
  62.  
  63. someone's name, and as an end-of-line, the other characters
  64. can be used as parts of text or for their particular
  65. functions. 
  66.  
  67. This example program uses the functions that can determine the
  68. class of a character, and counts the characters in each class. 
  69. The number of each class is displayed along with the line
  70. itself.  The three functions are as follows;
  71.  
  72.      isalpha(c);     Is the character alphabetic?
  73.      isdigit(c);     Is the character a numeral?
  74.      isspace(c);     Is the character any of, \n, \t, or blank?
  75.  
  76. As noted above, many more classification routines are
  77. available with your compiler.
  78.  
  79. This program should be simple for you to find your way through
  80. so no explanation will be given.  It was necessary to give an
  81. example with these functions used.  Compile and run this
  82. program with any file you choose.
  83.  
  84.  
  85. THE LOGICAL FUNCTIONS
  86. ____________________________________________________________
  87.  
  88. Load and display the program BITOPS.C.  The    ==============
  89. functions in this group of functions are used     BITOPS.C
  90. to do bitwise operations, meaning that the     ==============
  91. operations are performed on the bits as
  92. though they were individual bits.  No carry
  93. from bit to bit is performed as would be done with a binary
  94. addition.  Even though the operations are performed on a
  95. single bit basis, an entire byte or integer variable can be
  96. operated on in one instruction.  The operators and the
  97. operations they perform are given in the following table;
  98.  
  99.  
  100.      &   Logical AND, if both bits are 1, the result is 1.
  101.      |   Logical OR, if either bit is one, the result is 1.
  102.      ^   Logical XOR, (exclusive OR), if one and only one bit
  103.              is 1, the result is 1.
  104.      ~   Logical invert, if the bit is 1, the result is 0,
  105.              and if the bit is 0, the result is 1.
  106.  
  107. The example program uses several fields that are combined in
  108. each of the ways given above.  The data is in hexadecimal
  109. format.  It will be assumed that you already know hexadecimal
  110. format if you need to use these operations.  If you don't,
  111. you will need to study it on your own.  Teaching the
  112. hexadecimal format of numbers is beyond the scope of this
  113. tutorial.  Be sure to compile and execute this program and
  114. observe the output.
  115.  
  116.  
  117.  
  118.                                                     Page 13-2
  119.  
  120.                   Chapter 13 - Character and Bit Manipulation
  121.  
  122. THE SHIFT INSTRUCTIONS
  123. ____________________________________________________________
  124.  
  125. The last two operations to be covered in this   =============
  126. chapter are the left shift and the right          SHIFTER.C
  127. shift instructions.  Load the example program   =============
  128. SHIFTER.C for an example using these two
  129. instructions.  The two operations use the
  130. following operators;
  131.  
  132.      << n     Left shift n places.
  133.      >> n     Right shift n places.
  134.  
  135. Once again the operations are carried out and displayed using
  136. the hexadecimal format.  The program should be simple for you
  137. to understand on your own, there is no tricky code.
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.                                                     Page 13-3
  176.