c++ programming: program design including data structures, fifth edition

24
C++ PROGRAMMING: PROGRAM DESIGN INCLUDING DATA STRUCTURES, FIFTH EDITIO Chapter 10: Strings and string type

Upload: adie

Post on 16-Mar-2016

98 views

Category:

Documents


1 download

DESCRIPTION

C++ Programming: Program Design Including Data Structures, Fifth Edition. Chapter 10: Strings and string type. Objectives. Learn about C -strings Examine the use of string functions to process C -strings Discover how to input data into—and output data from—a C -string. string Type. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: C++ Programming: Program Design Including Data Structures,  Fifth Edition

C++ PROGRAMMING:PROGRAM DESIGN INCLUDINGDATA STRUCTURES, FIFTH EDITION

Chapter 10: Strings and string type

Page 2: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Objectives2

• Learn about C-strings• Examine the use of string functions to process C-strings

• Discover how to input data into—and output data from—a C-string

Page 3: C++ Programming: Program Design Including Data Structures,  Fifth Edition

string Type

To use the data type string, the program must include the header file string

The statement: string name = "William Jacob";

declares name to be a string variable and also initializes name to "William Jacob" The first character, 'W', is in position 0 The second character, 'i', is in position 1 name is capable of storing any size string

C++ Programming: Program Design Including Data Structures, Fifth Edition

3

Page 4: C++ Programming: Program Design Including Data Structures,  Fifth Edition

string Type (cont'd.)

Binary operator + have been defined for the data type string + performs the string concatenation operation

Example: str1 = "Sunny";

str2 = str1 + " Day";stores "Sunny Day" into str2

4

Page 5: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Example 8-14: clear, empty, erase, length, AND size FUNCTIONS

5

Please check the textbook: chapter 8, page 462, Table 8-1 for other string functions

// 0// 1

strVar.erase(pos, n): deleting n chars from strVar starting at position pos.

Page 6: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Example 8-15: find FUNCTION6

- strVar.find(str): return the index of the first occurrence of str in strVar.- strVar.find(str, pos): return the index of the first occurrence at or after pos where str is found in strVar.

// 4294967295

Page 7: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Example 8-16: insert AND replace FUNCTIONS

7

- strVar.insert(pos, str): insert all the characters of str at index pos into strVar.- strVar.insert(pos, n, str): insert n occurrences of the character str at index pos into strVar.

Page 8: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Example 8-17: substr FUNCTION8

- strVar.substr(pos, len): returning a string that is a substring of strVar starting at pos

Page 9: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Example 8-18: swap FUNCTION9

- strVar.swap(str): swaps the contents of strVar and str.

Page 10: C++ Programming: Program Design Including Data Structures,  Fifth Edition

C-Strings (Character Arrays)10

Character array: an array whose components are of type char

C-strings is an array of characters ending with the null-terminated ('\0')

Example: 'A' is the character A "A" is the C-string A

"A" represents two characters, 'A' and '\0‘ Char City1[] = “Dallas”; // C-string Char City1[] = {‘D’, ‘a’, ‘l’, ‘l’, ‘a’, ‘s’}; //Char array

Page 11: C++ Programming: Program Design Including Data Structures,  Fifth Edition

C-Strings (Character Arrays) (cont'd.)11

Consider the statementchar name[16] = “Hello”;

Since C-strings are null terminated and name has 16 components, the largest string that it can store has 15 characters

If you store a string of length, say 10 in name The first 11 components of name are used and the

last five are left unused

Page 12: C++ Programming: Program Design Including Data Structures,  Fifth Edition

C-Strings (Character Arrays) (cont'd.)12

• The statementchar name[16] = {‘J’,’o’,’h’,’n’,’\0’};

declares an array name of length 16 of type char and stores the C-string "John" in it

• The statementchar name[] = "John";

declares an array name of length 5 and stores the C-string "John" in it.

char name[16] = {‘J’,’o’,’h’,’n’,’\0’}; = char name[] = "John";

Page 13: C++ Programming: Program Design Including Data Structures,  Fifth Edition

C-Strings (Character Arrays) (cont'd.)13

Page 14: C++ Programming: Program Design Including Data Structures,  Fifth Edition

String Comparison14

C-strings are compared character by character using the collating sequence of the system

If we are using the ASCII character set "Air" < "Boat" "Air" < "An" "Bill" < "Billy" "Hello" < "hello"

Page 15: C++ Programming: Program Design Including Data Structures,  Fifth Edition

String Comparison (cont’d.)15

Example_9-6.cpp

Page 16: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Reading and Writing Strings16

• Most rules that apply to arrays apply to C-strings as well

• Aggregate operations, such as assignment and comparison, are not allowed on arrays

• The one place where C++ allows aggregate operations on arrays is the input and output of C-strings (that is, character arrays)

Page 17: C++ Programming: Program Design Including Data Structures,  Fifth Edition

String Input17

Assume we declare char name[31]; cin >> name; stores the next input C-

string into name To read strings with blanks, use get:

cin.get(str, m+1); Stores the next m characters into str but the

newline character is not stored in str If the input string has fewer than m characters,

the reading stops at the newline character

Page 18: C++ Programming: Program Design Including Data Structures,  Fifth Edition

String Output18

cout << name; outputs the content of name on the screen << continues to write the contents of name until it

finds the null character If name does not contain the null character, then

we will see strange output << continues to output data from memory adjacent to name until '\0' is found

Page 19: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Class Activity19

Consider the following statement:char str1[16], str2[16];cin.get(str1,3);cin.get(str2,4);cout << str1;cout << str2;

What is the value of str1, str2 and final output for the following input:C++ Programming

Answer:str1={‘C’,‘+’,‘\0’}str2={‘+’,‘ ’,‘P’,‘\0’}Final output:C++ P

cin.get.cpp

Page 20: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Class Activity20

Consider the following statement:char str1[16], str2[16], discard;cin.get(str1,17);cin.get(discard);cin.get(str2,4);cout << str1;cout << str2;

What is the value of str1, str2 and final output for the following input:C++ ProgrammingC++ Programming

Answer:str1={‘C’,‘+’,,‘+’,‘ ’,‘P’,‘r’,‘o’,‘g’,‘r’,‘a’,‘m’,‘m’,‘i’,‘n’,‘g’,‘\0’}str2={‘C’,‘+’,‘+’,‘\0’}Final output:C++ ProgrammingC++

Page 21: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Arrays of Strings21

Strings in C++ can be manipulated using either the data type string or character arrays (C-strings)

Page 22: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Arrays of Strings and the string Type22

To declare an array of 100 components of type string:string list[100];

Basic operations, such as assignment, comparison, and input/output, can be performed on values of the string type

The data in list can be processed just like any one-dimensional array

Page 23: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Arrays of Strings and C-Strings (Character Arrays)

23

Page 24: C++ Programming: Program Design Including Data Structures,  Fifth Edition

Summary24

In C++, C-strings are null terminated and are stored in character arrays

Commonly used C-string manipulation functions include: strcpy, strcmp, and strlen