1 / 23

Characters

Programming. Characters. Data Type: char. Constant declaration const char star = '*'; Variable declaration char resp; Variable assignment resp = 'c'; Input/Output char a, b, c, d; cin >> a >> b >> c >> d; // user types: 1X3Y // a <- '1', b<-'X', c<-'3', d<-'Y'

jgause
Télécharger la présentation

Characters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming Characters

  2. Data Type: char • Constant declaration const char star = '*'; • Variable declaration char resp; • Variable assignment resp = 'c'; • Input/Output char a, b, c, d; cin >> a >> b >> c >> d; // user types: 1X3Y // a <- '1', b<-'X', c<-'3', d<-'Y' cout <<a<< ' ' <<b<< ' ' <<c<< ' ' <<d<< endl; // output: 1 X 3 Y

  3. The ASCII Character Set • 7-bit encoding for 128 possible characters • Some of the 32 non-printing control characters • 0 NUL character (end of string character) • 7 Bell character (makes beep) • 8 Backspace character (\b) • 9 Tab character (\t) • 10 Newline character (\n) • space (32) is the first printable ACSII character • '0' - '9' have code values 48 through 57 • 'A' - 'Z' have code values 65 through 90 • 'a' - 'z' have code values 97 through 122 • See Appendix A.1 in book for full ASCII list

  4. The ASCII Character Set • www.asciitable.com Use 1: perform arithmetics Use 2: perform comparison

  5. Characters: Example 3 // program to output a random character #include <iostream> #include <cstdlib> #include <ctime> using namespace std; void main(){ char c; int r; srand(time(0)); r = rand()%26; c = 'a' + r; // addition with characters!! cout << "random character: " << c << endl; }

  6. Relational char Operators • '0' - '9' have code values 48 through 57 '0' < '1' < ... < '9' • 'A' - 'Z' have code values 65 through 90 'A' < 'B' < ... < 'Z' • 'a' - 'z' have code values 97 through 122 'a' < 'b' < ... < 'z' • (Upper case is always < lower case)

  7. Character Functions in <cctype> • isupper(c) returns nonzero if c is an uppercase letter • islower(c) returns nonzero if c is a lowercase letter • isalpha(c) returns nonzero if either islower(c) or isupper(c) returns nonzero • isdigit(c) returns nonzero if c is a digit character • isalnum(c) returns nonzero if either isalpha(c) or isdigit(c) returns nonzero • isspace(c) returns nonzero if c is a space, newline, or tab • tolower(c) if c is uppercase it returns lowercase; otherwise it returns c • toupper(c) if c is lowercase it returns uppercase; otherwise it returns c

  8. Characters: Example 1 // islower.cpp #include <iostream> using namespace std; int islower(char c){ if(c>='a' && c <='z') return 1; else return 0; } void main(){ char c; cout << "Enter a character: "; cin >> c; if(islower(c)) cout << c << " is a lower case letter" << endl; else cout << c << " is not a lower case letter\n"; }

  9. Characters: Example 2 // program to beep at user #include <iostream> using namespace std; void main(){ cout << '\7'; // print ASCII code 7 cout << '7'; // print character '7' }

  10. White Space • cin >> c skips any white space (spaces, tabs, newlines) • Example: char c = ' '; while(c != '\n') cin >> c; cout << c; } • Input: a b c d • Output: abcd

  11. Difference between cin.get(ch) and >> • How to keep white spaces? • Use cin.get(ch): char ch = ' '; while(ch != '\n') cin.get(ch); // ch is passed by reference // ch is set to the input value cout.put(ch); // ch is passed by value // just print it out; // same as: cout << ch; } • Input: a b c d • Output: a b c d • cin.get(ch) reads white space just like other characters!!

  12. cin.get(c) • cin.get (char&) read a single character • cout.put (char) write a single character • Let's say the user inputs a word, 'hello'. cin.get(c) will return the letter 'h'. The rest of the word is not lost, but stays in the stream. • If we perform another cin.get operation, we will get the next letter, 'e'. • cout.put(c) simply outputs one letter at a time (same as cout << c).

  13. cin.get(c): Example 1 // Program to count the number of input blanks // (Program outputs characters without blanks) #include <iostream> using namespace std; void main() { char next; int count = 0; do{ cin.get(next); if(next == ' ') count++; else cout.put(next); }while(next != '\n'); cout << "Number of blanks = " << count << endl; }

  14. cin.get(c): Example 1 Input: a Output: a Number of blanks = 0 Input: ab cd Output: abcd Number of blanks = 1 Input: 1 2 3 4 5 6 7 8 9 Output: 123456789 Number of blanks = 8

  15. cin.get(c): Example 2 /* Reads a string of characters and converts the digits in the string to int type */ #include <iostream> #include <cctype> using namespace std; int read_int(); void main() { int number; cout << "Enter a line of digits followed by enter: "; number = read_int(); cout << "The numerical value of the digits" << " in the line is: \n" << number << endl; }

  16. cin.get(c): Example 2 int read_int(){ const char nwln = '\n'; char next; int digit; int value = 0; do{ cin.get(next); if(isdigit(next)){ digit = int(next) - int('0'); value = 10*value + digit; } }while(next != nwln); return value; }

  17. cin.get(c): Example 2 Enter a line of digits followed by enter: 1a234 The numerical value of the digits in the line is: 1234 Enter a line of digits followed by enter: 1234567890 The numerical value of the digits in the line is: 1234567890 Enter a line of digits followed by enter: 12345678900 The numerical value of the digits in the line is: -539222988 (overflows at about 2.147 billion with 32-bit integers)

  18. Programming Strings

  19. Strings • Strings are a special data type used to store a sequence of characters • Include the <string> library to use strings • Compare strings with the <, ==, and != operations • Concatenate strings with the + operation • Use s.substr(position, size) to get a substring from a string s starting from position, and of length size • Use s.find(subs) to find where a substring subs begins in string s

  20. Strings: Example 1 #include <iostream> #include <string> // string library using namespace std; int main(){ string name; cout << "Enter name (without spaces): "; cin >> name; cout << "Name: " << name << endl; } • example input/output: Enter name (without spaces): ChanTaiMan Name: ChanTaiMan

  21. Strings: Example 2 #include <iostream> #include <string> // string library using namespace std; int main(){ string s = "Top "; string t = "ten "; string w; string x = "Top 10 Uses for Strings"; w = s + t; cout << "s: " << s << endl; cout << "t: " << t << endl; cout << "w: " << w << endl; cout << "w[5]: " << w[5] << endl;

  22. Strings: Example 2 if(s < t) cout << "s alphabetically less than t" << endl; else cout << "t alphabetically less than s" << endl; if(s+t == w) cout << "s+t = w" << endl; else cout << "s+t != w" << endl; cout << "substring where: " << x.find("Uses") << endl; cout << "substring at position 12 with 7 characters: " << x.substr(12, 7) << endl; return 0; }

  23. Strings: Example 2 • Example output: s: Top t: ten w: Top ten w[5]: e s alphabetically less than t s+t = w substring where: 7 substring at position 12 with 7 characters: for Str

More Related