numeric types, expressions, and output 1. chapter 3 topics constants of type int and float...

70
Numeric Types, Expressions, and Output 1

Upload: harvey-griffith

Post on 30-Dec-2015

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Numeric Types, Expressions, and Output

1

Page 2: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and Explicit

Type Conversion Calling a Value-Returning Function Using Function Arguments Using C++ Library Functions in

Expressions Calling a Void Function C++ Manipulators to Format Output String Operations length, find, and

substr

2

Page 3: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

3

C++ Data TypesC++ Data Types

structured

array struct union class

address

pointer reference

simple

integral enum

char short int long bool

floating

float double long double

Page 4: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

4

C++ Simple Data TypesC++ Simple Data Types

simple types

integral floating

char short int long bool enum float double long double

unsigned

Page 5: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Standard Data Types in C++Integral Types

represent whole numbers and their negatives

declared as int, short, or longFloating Types

represent real numbers with a decimal point

declared as float or doubleCharacter Type

represents single charactersdeclared as char

5

Page 6: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Samples of C++ Data Valuesint sample values

4578 -4578 0

float sample values95.274 95. .2659521E-3 -95E-1 95.213E2

char sample values

‘B’ ‘d’ ‘4’ ‘?’ ‘*’

6

Page 7: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

7

2.7E4 means 2.7 x 10 4 =

2.7000 =

27000.0

2.7E-4 means 2.7 x 10 - 4 =

0002.7 =

0.00027

Page 8: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

More About Floating Point Values

Floating point numbers have an integer part and a fractional part, with a decimal point in between. Either the integer part or the fractional part, but not both, may be missing

Examples 18.4 500. .8 -127.358

8

Page 9: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

More About Floating Point Values Alternatively, floating point values can

have an exponent, as in scientific notation--the number preceding the letter E doesn’t need to include a decimal point

Examples 1.84E1 5E2 8E-1 -.127358E3

9

Page 10: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Division OperatorThe result of the division operator depends

on the type of its operands

If one or both operands has a floating point type, the result is a floating point type. Otherwise, the result is an integer type

Examples11 / 4 has value 211.0 / 4.0 has value 2.7511/ 4.0 has value 2.75

10

Page 11: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

11

/*******************************************************FreezeBoil programThis program computes the midpoint between the freezing and boiling points of water*******************************************************/#include < iostream >using namespace std;const float FREEZE_PT = 32.0; // Freezing point of waterconst float BOIL_PT = 212.0; // Boiling point of waterint main(){ float avgTemp; // Holds the result of averaging // FREEZE_PT and BOIL_PT cout << “Water freezes at “ << FREEZE_PT << endl; cout << “ and boils at “ << BOIL_PT << “ degrees.” << endl; avgTemp = FREEZE_PT + BOIL_PT; avgTemp = avgTemp / 2.0; cout << “Halfway between is “; cout << avgTemp << “ degrees.” << endl; return 0;}

Page 12: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

12

Function main Continued cout << “Water freezes at “ << FREEZE_PT << endl; cout << “ and boils at “ << BOIL_PT << “ degrees.” << endl;

avgTemp = FREEZE_PT + BOIL_PT; avgTemp = avgTemp / 2.0;

cout << “Halfway between is “; cout << avgTemp << “ degrees.” << endl;

return 0;}

Page 13: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Modulus OperatorThe modulus operator % can only

be used with integer type operands and always has an integer type result

Its result is the integer type remainder of an integer division

Example: 11 % 4 has value 3

because13

)4 11

2 R = 3

Page 14: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

14

More C++ Operators

8

int age;

age = 8;

age = age + 1;

age

9

age

Page 15: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

15

Prefix FormIncrement Operator

8

int age;

age = 8;

++age;

age

9

age

Page 16: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

16

Postfix Form Increment Operator

8

int age;

age = 8;

age++;

age

9

age

Page 17: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

17

Decrement Operator

100

int dogs;

dogs = 100;

dogs--;

dogs

99

dogs

Page 18: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Which Form to UseWhen the increment(or decrement)

operator is used in a “stand alone” statement solely to add one(or subtract one) from a variable’s value, it can be used in either prefix or postfix form

18

dogs--; --dogs;

USE EITHER

Page 19: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

BUT...When the increment(or decrement)

operator is used in a statement with other operators, the prefix and postfix forms can yield different results

19

We’ll see how later . . .

Page 20: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

What is an Expression in C++?An expression is a valid

arrangement of variables, constants, and operators

In C++ each expression can be evaluated to compute a value of a given type

The value of the expression 9.3 * 4.5 is 41.85

20

Page 21: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Operators can be

binary involving 2 operands 2 + 3

unary involving 1 operand - 3

ternary involving 3 operands later

21

Page 22: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

22

Some C++ OperatorsPrecedence Operator Description Higher ( ) Function call + Positive - Negative * Multiplication / Division % Modulus

(remainder)

+ Addition - SubtractionLower = Assignment

Page 23: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

PrecedenceHigher Precedence determines

which operator is applied first in an expression having several operators

23

Page 24: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

AssociativityLeft to right associativity means that

in an expression having 2 operators with the same priority, the left operator is applied first

In C++ the binary operators *, /, %, +, - are all left associative

Expression 9 - 5 - 1 means (9 - 5) - 14 – 1 =

3 24

Page 25: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Evaluate the Expression7 * 10 - 5 % 3 * 4 + 9

(7 * 10) - 5 % 3 * 4 + 9 70 - 5 % 3 * 4 + 9

70 - (5 % 3) * 4 + 9 70 - 2 * 4 + 9 70 - ( 2 * 4) + 9 70 - 8 + 9 (70 - 8 ) + 9

62 + 971

25

Page 26: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

ParenthesesParentheses can be used to change the

usual orderParts in() are evaluated firstEvaluate

(7 *(10 - 5) % 3) * 4 + 9(7 * 5 % 3 ) * 4 + 9

( 35 % 3) * 4 + 9 2 * 4 + 9

8 + 9 17

26

Page 27: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Recall Assignment Operator SyntaxVariable = Expression

First, Expression on right is evaluatedThen the resulting value is stored in the

memory location of Variable on left

NOTE: An automatic type coercion occurs after evaluation but before the value is stored if the types differ for Expression and Variable

27

Page 28: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

What value is stored?float a;

float b;

a = 8.5;

b = 9.37;

a = b;

28

a

b

a

b

8.5

9.37

?

?

Page 29: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

29

What is stored?

?float someFloat;

someFloat

someFloat = 12; // Causes implicit type conversion

someFloat

12.0

Page 30: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

30

What is stored?

?

int someInt;

someInt

someInt = 4.8; // Causes implicit type conversion

someInt

4

Page 31: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Type Casting is Explicit Conversion of Typeint(4.8) has value 4

float(5) has value 5.0

float(7/4) has value 1.0

float(7) / float(4) has value1.75

31

Page 32: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Some Expressionsint age;

Example Valueage = 8 8- age - 85 + 8 135 / 8 06.0 / 5.0 1.2float(4 / 8) 0.0float(4) / 8 0.5

32

Page 33: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

What values are stored?float loCost;float hiCost;

loCost = 12.342;hiCost = 12.348;

loCost = float(int(loCost * 100.0 + 0.5)) / 100.0;

hiCost = float(int(hiCost * 100.0 + 0.5)) / 100.0;

33

Page 34: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

34

Values were rounded to 2 decimal places

12.34

hiCost

12.35

loCost

Page 35: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

35

Using Predefined FunctionsA function (subprogram): set of instructions

When activated, it accomplishes a task

main executes when a program is run

Other functions execute only when called

C++ includes a wealth of functions

Predefined functions are organized as a collection of libraries called header files

Page 36: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

36

Predefined FunctionsHeader file may contain several functions

To use a predefined function, you need the name of the appropriate header file

You also need to know:Function name

Number of parameters required

Type of each parameter

What the function is going to do

Page 37: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

37

Predefined Function ExampleTo use pow (power), include cmath

pow has two numeric parameters

The syntax is: pow(x,y) = xy

x and y are the arguments or parameters

In pow(2,3), the parameters are 2 and 3

Page 38: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

HEADER FILE FUNCTION EXAMPLE VALUE OF CALL

38

fabs(x) fabs(-6.4) 6.4

<cmath> pow(x,y) pow(2.0,3.0) 8.0

<cmath> sqrt(x) sqrt(100.0) 10.0

<cmath> log(x) log(2.0) .693147

sqrt(x) sqrt(2.0) 1.41421

<cstdlib> abs(i) abs(-6) 6

Page 39: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Write C++ Expressions forThe square root of b2 - 4ac

sqrt(b * b - 4.0 * a * c)

The square root of the average of myAge and yourAge

sqrt((myAge + yourAge) / 2)39

Page 40: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Manipulators Manipulators are used only in input

and output statements

endl, fixed, showpoint, setw, and setprecision are manipulators that can be used to control output format

endl is use to terminate the current output line and create blank lines in output

40

Page 41: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Using ManipulatorsFixed and Showpointuse the following statement to

specify that(for output sent to the cout stream) decimal format(not scientific notation) be used, and that a decimal point be included(even for floating values with 0 as fractional part)

cout << fixed << showpoint; 41

Page 42: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

setprecision(n)Requires #include <iomanip> and

appears in an expression using insertion operator(<<)

If fixed has already been specified, argument n determines the number of places displayed after the decimal point for floating point values

Remains in effect until explicitly changed by another call to setprecision

42

Page 43: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

43

What is exact output?#include <iomanip> // For setw() and setprecision()#include <iostream>

using namespace std;

int main(){ float myNumber = 123.4587; cout << fixed << showpoint; // Use decimal format // Print decimal points cout << “Number is ” << setprecision(3) << myNumber << endl; return 0;}

Page 44: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

44

OUTPUT

Number is 123.459

Value is rounded if necessary to be displayed with exactly 3 places after the decimal point

Page 45: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Manipulator setw

“Set width” lets us control how many character positions the next data item should occupy when it is output

setw is only for formatting numbers and strings, not char type data

45

Page 46: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

setw(n)Requires #include <iomanip> and appears in

an expression using insertion operator(<<)

Argument n is called the fieldwidth specification, and determines the number of character positions in which to display a right-justified number or string(not char data); the number of positions used is expanded if n is too narrow

“Set width” affects only the very next item displayed and is useful to align columns of output 46

Page 47: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

47

What is exact output?#include <iomanip> // For setw()#include <iostream>#include <string>

using namespace std;

int main(){ int myNumber = 123; int yourNumber = 5;

cout << setw(10) << “Mine” << setw(10) << “Yours” << endl

<< setw(10) << myNumber << setw(10) << yourNumber << endl;

return 0;}

Page 48: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

48

Output

12345678901234567890 Mine Yours 123 5

Each is displayed right-justified andeach is located in a total of 10 positions

position

Page 49: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

49

What is exact output?#include <iomanip> // For setw() and setprecision()#include <iostream>

using namespace std;

int main(){ float myNumber = 123.4; float yourNumber = 3.14159;

cout << fixed << showpoint; // Use decimal format; print decimal points cout << “Numbers are: ” << setprecision(4) << endl << setw(10) << myNumber << endl << setw(10) << yourNumber << endl; return 0;}

Page 50: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

50

OUTPUT

Numbers are: 123.4000 3.1416

Each is displayed right-justified androunded if necessary and each islocated in a total of 10 positions with 4 places after the decimal point

12345678901234567890

Page 51: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

51

float x = 312.0; float y = 4.827;

cout << fixed << showpoint; OUTPUT

cout << setprecision(2) << setw(10) << x << endl ’’’’312.00

<< setw(10) << y << endl; ’’’’’’4.83

cout << setprecision(1) << setw(10) << x << endl ’’’’’312.0

<< setw(10) << y << endl; ’’’’’’’4.8

cout << setprecision(5) << setw(7) << x << endl 312.00000

<< setw(7) << y << endl; 4.82700

More Examplesx

312.0

y

4.827

Page 52: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

setfillUsed to fill the unused columns with a

character other than a space when used with the setw manipulator.

cout << setfill(‘*’);cout << setw(5) << 15 << setw(7) << 7634

<< setw(8) << “Warm” << endl;

Output:***15***7634****Warm

52

Page 53: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

Left and right maniulatorsDefault setting is that output is right justified

when using setw.To change to left, use

cout << left;Output is then left justified until changed.To change back to right, use

cout << right;

53

Page 54: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

HEADER MANIPULATOR ARGUMENT EFFECT FILE TYPE

54

<iostream> showpoint none displays decimal point

<iostream> fixed none suppresses scientific notation

<iomanip> setprecision(n) int sets precision to n digits

<iomanip> setw(n) int sets fieldwidth to n positions

<iostream> endl none terminates output line

Page 55: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

55

Formatting Outputendl manipulator moves output to the

beginning of the next line

setprecision(n) outputs decimal numbers with up to n decimal places

fixed outputs floating-point numbers in a fixed decimal format

showpoint forces output to show the decimal point and trailing zeros

Page 56: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

56

Types of ManipulatorsTwo types of manipulators:

With parameters

Without parameters Parameterized: require iomanip header

setprecision, setw, and setfill

Nonparameterized: require iostream headerendl, fixed, showpoint, left, right

Page 57: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

57

I/O and the string TypeAn input stream variable (cin) and

extraction operator >> can read a string into a variable of the data type string

Extraction operatorSkips any leading whitespace characters

and reading stops at a whitespace character Should not be used to read strings with

blanksThe function getline

Reads until end of the current lineShould be used to read strings with blanks

getline(cin, mystring);

Page 58: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

The string TypeTo 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', in name is in position 0; the second character, 'i', is in position 1, and so on

Page 59: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

The string Type (continued)The variable name is capable of storing any

size stringBinary operator + (to allow the string

concatenation operation), and the array subscript operator [], have been defined for the data type string

For example, If str1 = "Sunny", the statement stores the string "Sunny Day" into str2:

str2 = str1 + " Day";

Page 60: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

length FunctionLength returns the number of characters

currently in the stringThe syntax to call the length function is:

strVar.length()

where strVar is variable of the type stringlength has no argumentslength returns an unsigned integerThe value returned can be stored in an

integer variable

Page 61: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and
Page 62: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

size FunctionThe function size is same as the function length

Both functions return the same valueThe syntax to call the function size is:

strVar.size()

where strVar is variable of the type stringAs in the case of the function length, the

function size has no arguments

Page 63: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

find Functionfind searches a string for the first

occurrence of a particular substringReturns an unsigned integer value of type string::size_type giving the result of the search

The syntax to call the function find is:strVar.find(strExp)

where strVar is a string variable and strExp is a string expression evaluating to a string

The string expression, strExp, can also be a character

Page 64: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

find Function (continued)If successful, find returns the position in strVar where the match begins

For the search to be successful the match must be exact

If unsuccessful, find returns the special value string::npos (“not a position within the string”)

Page 65: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and
Page 66: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

substr Functionsubstr returns a particular substring of a

string

The syntax to call the function substr is:

strVar.substr(expr1,expr2)

where expr1 and expr2 are expressions evaluating to unsigned integers

Page 67: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

substr Function (continued)The expression expr1 specifies a position

within the string (starting position of the substring)

The expression expr2 specifies the length of the substring to be returned

Page 68: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and
Page 69: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

swap Functionswap interchanges the contents of two

string variablesThe syntax to use the function swap is

strVar1.swap(strVar2);

where strVar1 and strVar2 are string variables

Suppose you have the following statements:string str1 = "Warm";

string str2 = "Cold";

After str1.swap(str2); executes, the value of str1 is "Cold" and the value of str2 is "War"

Page 70: Numeric Types, Expressions, and Output 1. Chapter 3 Topics Constants of Type int and float Evaluating Arithmetic Expressions Implicit Type Coercion and

String summaryA string is a sequence of zero or more charactersStrings in C++ are enclosed in double quotation

marksThe function length returns the number of characters

currently in the string

The function size returns the number of characters currently in the string

The function find searches a string to locate the first occurrence of a particular substring

The function substr returns a particular substring of a string

The function swap is used to swap the contents of two string variables 70