Download presentation
Presentation is loading. Please wait.
1
Characters
2
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 3 The ASCII Character Set * 7-bit encoding for 128 possible characters * Some of the 32 non-printing control characters n 0 NUL character (end of string character) n 7 Bell character (makes beep) n 8 Backspace character (\b) n 9Tab character (\t) n 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
COMP104 Lecture 21 / Slide 4 The ASCII Character Set * www.asciitable.com www.asciitable.com l Use 1: perform arithmetics l Use 2: perform comparison
5
COMP104 Lecture 21 / Slide 5 Characters: Example 3 // program to output a random character #include 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
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 7 Character Functions in 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
COMP104 Lecture 21 / Slide 8 Characters: Example 1 // islower.cpp #include 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
COMP104 Lecture 21 / Slide 9 Characters: Example 2 // program to beep at user #include using namespace std; void main(){ cout << '\7';// print ASCII code 7 cout << '7';// print character '7' }
10
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 13 cin.get(c): Example 1 // Program to count the number of input blanks // (Program outputs characters without blanks) #include 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
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 15 cin.get(c): Example 2 /* Reads a string of characters and converts the digits in the string to int type */ #include 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
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 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
Strings
19
COMP104 Lecture 21 / Slide 19 Strings * Strings are a special data type used to store a sequence of characters * Include the 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
COMP104 Lecture 21 / Slide 20 Strings: Example 1 #include #include // 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
COMP104 Lecture 21 / Slide 21 Strings: Example 2 #include #include // 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
COMP104 Lecture 21 / Slide 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
COMP104 Lecture 21 / Slide 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.