0% found this document useful (0 votes)
141 views

Chapter 4 (Part II) - Array and Strings

This chapter discusses arrays and strings in C++. It covers basic concepts of arrays, including one and multi-dimensional arrays. It also covers strings, which are arrays of characters. The chapter discusses declaring and initializing strings, both with character arrays in C-style and string objects in C++. It also covers accessing and manipulating string elements, including input/output, copying, comparing and concatenating strings. Library functions and operators for strings are presented.

Uploaded by

Fares Belayneh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
141 views

Chapter 4 (Part II) - Array and Strings

This chapter discusses arrays and strings in C++. It covers basic concepts of arrays, including one and multi-dimensional arrays. It also covers strings, which are arrays of characters. The chapter discusses declaring and initializing strings, both with character arrays in C-style and string objects in C++. It also covers accessing and manipulating string elements, including input/output, copying, comparing and concatenating strings. Library functions and operators for strings are presented.

Uploaded by

Fares Belayneh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

Fundamentals of

Computer Programming

Chapter 4
Array and Strings

Chere L. (M.Tech)
Lecturer, SWEG, AASTU
Outline
 Basic concepts of Array
 Types of Array
 One Dimensional Arrays
 Multi-dimensional Arrays
 Array declaration and initialization
 Accessing and processing Array Elements
 Basics of String
 String declaration and initialization
 String manipulation and operation
Input/output, Copying, Comparing, concatenation, etc.
 String library functions and operators 2
Chapter 4
Part II
Array of Character
(Strings)

3
Chapter 4
4) Basic of String
What is string?
 A string is a collection of characters .
 It is usually a meaningful sequence representing the name of
an entity.
 Generally it is combination of two or more characters
enclosed in double quotes.

 Example:
“Good Morning” // string with 2 words
“Mehak” // string with one word
”B.P.” // string with letters and symbols
“” // an empty string

 The above examples are also known as string literals


4
Chapter 4
4) Basic of String (cont’d)
String in C++
 C++ does not provide with a special data type to store strings.
• Thus we use arrays of the type char to store strings
 Strings in C++ are always terminated using a null character
(‘\0’)
 Strings can be one dimensional or multi- dimensional
character arrays terminated by a null character (‘\0’)
 String literals are the values stored in the character array
 Example: "Hi there!“
===> would be stored in memory as shown:

H i t h e r e ! \0
5
Chapter 4
4.1) String Declaration (C Style)
 To declare a character array (string) the syntax is
char stringName[size]; //One dimensional string
char stringName[rSize] [cSize]; //Two dimensional string
rsize: no of strings
 Example: char name[20]; cSize: size of each string
char stud_Name [30][20];
Note:
 Here name and stud_name is a character array or string capable of
storing maximum of 19 characters and 570 characters respectively.
 Since one character is reserved for storing ‘\0’, the number of elements
that can be stored in a 1D string is always size-1
 Incase of 2D string each row should ends with ‘\0’ and the maximum
number of characters that will stored is total_size – row_Size
6
Chapter 4
4.1) String Declaration (C++ Style)
 In C++ a string can be declared with string object in addition to that
of C-style declaration.
 Example:
string myString;
string city, country; string address[10];
 C-strings vs. string objects
C-strings string objects
Implemented as arrays of type char Instance of string class
Terminated with the null character Not terminated with null character
Compile-time allocation and run-time allocation and undetermined
determination of size size
Fixed size, but do not track their own Dynamic size and also track their own
size size
7
Chapter 4
4.1) String Declaration (C++ Style)
 Unlike C-style string, the string class library used to declared a
string as regular variables (not as arrays), and they support:
 The assignment operator =
 Comparison operators ==, !=, etc
 The + operator for concatenation
 Type conversions from c-strings to string objects
 A variety of other member functions

8
Chapter 4
4.2) String initialization
(a) 1D String Initialization
 Example 1:
char name[20] = “John Eyob”;
null
string character

J o h n E y . . o b ‘\0
.............. .
name[7] name[9]
name[0] name[1]

- The above string will have 9 characters and 1 space for the null.
Thus size of name will be 10.
 Example 2: string name = “John Eyob”;
9
Chapter 4
4.2) String initialization (cont’d)
 Example 2: omitting string size
- Like as we do in array string size can be omitted also
char myAddress[] = “Addis Ababa, Ethiopia”;
 In this case the string is initialized to the mentioned string literal and it’s
size is the number of characters in the string literal plus null character.
Here it is 20.
 The null character is automatically inserted at the end of the string.
 Example 3: initializing string character by character
char city [10] = {‘A’, ‘d’, ‘a’, ‘m’, ‘a’, ‘\0’};
char myCity [ ] = {‘D’, ‘i’, ‘r’, ‘e’, ‘d’, ‘e’, ‘w’, ‘a’, ‘\0’};

Note: The ‘\0’ has to be inserted by the programmer.


10
Chapter 4
4.2) String initialization (cont’d)
 Some more examples of string initialization
Initialization Memory representation
char animal[7]=“Lion”;
L i o n ‘\0’
char location[]=“Aksum City”;
A k s u m C i t y ‘\0’
char serial_no[]=“A011”; A 0 1 1 ‘\0’
char name [5] = “Gamechis”; //invalid, out of bound

char company[10] =
E t h i o t e l ‘\0’
“Ethiotel”;
//invalid, string must enclosed within
char country [] = ‘Ethioipia’;
double quote
11
Chapter 4
4.2) String initialization (cont’d)
(b) Initializing 2 D Strings - 2D string can be initialize as follows
 Example 1:
char word[4][5]={“Cat”, “Boat”, “Mat”,”Rate”};

12
4.2) String initialization (cont’d)
 Example 2: Omitting string rowSize (number of strings)
char name[][12] = {"Mr. Biniam", "Mr. Abush",
“Miss Nardos", “Mrs. Kidest",
“Dr. Andualem", “Eng. Yodit"};
- #strings (rowSize) = 6
2nd index 1st
Columns index
0 1 2 3 4 5 6 7 8 9 10 11 12
M r . B i n i a m \0

5 4 3 2 1 0
M r . A b u s h \0
M i s s N a r d o s \0

rows
name[2][2] M r s . K i d e s t \0
D r . A n d u a l e m \0
E n g . Y o d i t \0
name[5][7] name[4][8] 13
4.2) String initialization (cont’d)
 Example 3: initializing string objects
string address = “Addis Ababa”;

string name[12] = {"Mr. Biniam", "Mr. Abush",


“Miss Nardos", “Mrs. Kidest",
“Dr. Andualem", “Eng. Yodit"};

 Example 4: initializing 2D strings character by character


char myName[][6] = { {‘C’, ‘H’, ‘A’, ‘L’, ‘A’, ‘\0’},
{‘B’, ‘O’, ‘N’, ‘S’, ‘A’, ‘\0’}
{‘H’, ‘A’, ‘G’, ‘O’, ‘S’, ‘\0’ };

14
4.2) String initialization (cont’d)
 Example 6: initializing string after declaration
char mystring [6];
mystring[0] = 'H'; mystring[1] = 'e';
mystring[2] = 'l'; mystring[3] = 'l';
mystring[4] = 'o'; mystring[5] = '\0';
Note: Like wise 2D strings can be initialized after declaration.

 Example 7: Invalid string initialization/assignment


char mystring[6];
mystring="Hello"; // not allowed
mystring[] = "Hello"; //illegal
mystring = { 'H', 'e', 'l', 'l', 'o', '\0' }; //neither would be valid
15
Chapter 4
4.3) String input/output
 A string is displayed using a simple cout<< stream statement
 However, input a string or character array can be performed through
any one of the following
No Input method Descriptions
• Inputs a string without spaces
• The >> operator stops input when it encounters a
1 cin>> stream
space
• Syntax: cin>>str;
• Used to input either single character or a line of text
with spaces
• Syntax 1: cin.get(ch);
2 get() function where ch is a character
• Syntax 2: cin.get(str, n);
where str is string and n specify the size of
string to be read.
16
Chapter 4
4.3) String input/output (cont’d)
No Input method Descriptions
• Can be used to input a single line of text including
spaces.
3 gets() function • As soon as the enter is pressed it stops input
• Syntax: gets( str );
where str is a string
• Can be used to input multiple lines of text.
• Syntax: cin.getline(string, MAX, Delimiter)
were - String is the character array
- Max is the maximum number of characters
4 getline() function
allowed input
- Delimeter is the character which when
encountered in the input stream
stops the input

Note: it is no needed to use loop to input or display a string unless the character
array (string) is 2D and we need to read/print multiple strings.
17
Chapter 4
4.3) String input/output (cont’d)

18
Chapter 4
4.3) String input/output (cont’d)

Note:
 The getline function continues to input the string until either the maximum
number of characters are input or it encounters the delimiter character
whichever comes first.
19
Chapter 4
4.4) String Operation/manipulations
 Assignment/copy and comparison operation
 In C-style, strings cannot be copied or compared using the
simple assignment or comparison operator as follow.
char str1[20], str2[20];
str2=str1; // Not allowed
if(str1==str2) //Not allowed
{ ….. }
 However, using the C++ string objects the above two string
operations are valid
str2=str1; if(str1==str2) //both are valid
20
Chapter 4
4.4) String Operation/manipulations (cont’d)
 Assignment/copy and comparison operation
 In C-style, strings cannot be copied or compared using the
simple assignment or comparison operator as follow.
char str1[20], str2[20];
str2=str1; // Not allowed
if(str1==str2) //Not allowed
{ ….. }
 However, using the C++ string objects the above two string
operations are valid
str2=str1; if(str1==str2) //both are valid
21
Chapter 4
4.4) String Operation/manipulations (cont’d)
 Other string operations
 Find the string length
 Search string or substring
 Characters case conversion
 Reverse or swap string
 Concatenating strings
 String tokenization etc.
 Modifying (replace) string
 The above mentioned string manipulations can be performed
either through hard coding or using library functions
22
Chapter 4
4.4) String Manipulations and Library Functions
 Here below list of string manipulation library functions
String
Function Description
operations
Copies string str2 (source string) into
strcpy(str1, str2); the character array str1 (destination
string). The value of str1 is returned.
String copying
Copies at most n characters of string
strncpy(str1, str2, size_t n); s2 into the array s1. The value of s1
is returned.
Appends string s2 to string s1. The
strcat (str1, str2);
value of s1 is returned.
String
concatenation strncat (str1, str2, size_t n); Appends at most n characters of
string s2 to string s1. The value of s1
is returned.

23
Chapter 4
4.4) String Library Functions (cont’d)
 Here below list of string manipulation library functions
String
Function Description
operations
Compares string str1 with string str2. The
function returns a value of
• zero, if str1 is equal to str2
strcmp(str1, str2);
• less than zero, if str1 is less than str2
• greater than zero, if str1 greater than
str2

String Compares up to n characters of string str1


comparison strncmp(str1, str2, size n); with string str2. It works in the fashion as
strcmp().
Compares string str1 with string str2 in
int stricmp(str1, str2); regardless of their cases (upper case or
lower case.
Compares up to n characters of string str1
strnicmp(str1, str2, size n);
with string str2 in regardless of their cases
24
Chapter 4
4.4) String Library Functions (cont’d)
 Here below list of string manipulation library functions
String operations Function Description
strlen(str); Determines the length of string str. The
String length number of characters preceding the
terminating null character is returned.
strch(str1, ch); Returns a the first left occurrence of
character ch in string str1.
Looking for string /
character strrch(str1, ch); Returns a the first right occurrence of
Occurrence character ch in string str1 .
strstr(str1, str2); Returns a the first occurrence of string str2
in string str1.
strupr(str1) Converts lowercase characters in strings to
String case uppercase
conversion strlwr(str1) Converts uppercase characters in strings to
lowercase
25
Chapter 4
4.4) String Library Functions (cont’d)
 Here below list of string manipulation library functions
String
Function Description
operations
strspn(str1, str2) finds up at what length two strings are identical
strrev( str ) Reversing all characters of a string
A sequence of calls to strtok breaks string str1
into “tokens”—logical pieces such as words in a
line of text—delimited by characters contained
Others strtok( str1, s2 ); in string s2.
The first call contains str1 as the first argument,
and subsequent calls to continue tokenizing the
same string contain NULL as the first argument
strset(str, ch), Repalcae character(s) of string to a given
strnset(str, ch, 5) character

Note: These are some of the library functions and Many More are available
26
Chapter 4
4.4) String Library Functions (cont’d)
Relational Operators and library functions
supported by C++ String objects
functions Descriptions
append() appends a part of a string to another string

assign() assigns a partial string


at() obtains character stored at a specified
location
begin() returns a reference to the start of the string
capacity() gives the total element that can be stored
compare() compares a string against the invoking string
empty() returns true if the string is empty
end() returns a reference to the end of the string
erase() removes character as specified
find() searches for the occurrence of a specified
substring
swap() swaps the given string with the invoking on27
Chapter 4
4.4) String Library Functions (cont’d)

Correspondence between
the C-library and the C++ string class/object

28
Chapter 4
4.4) String Library Functions (cont’d)
Character handling library functions of ctype.h
Prototype Description
isdigit(c ) Returns true if c is a digit and false otherwise
isalpha( c ) Returns true if c is a letter and false otherwise
isalnum( c ) Returns true if c is a digit/letter and false otherwise
isxdigit( c ) Returns true if c is a hexadecimal digit and false otherwise
islower( c) Returns true if c is a lowercase letter and false otherwise
isupper( c) Returns true if c is an uppercase letter; false otherwise
tolower( c ), If c is an uppercase letter, it returns c as a lowercase letter. Otherwise,
toupper( c ) leave the character/string unchanged and vice versa
isgraph( c ) Returns true if c is a printing character other than space (' ')
Returns true if c is a white-space, newline ('n'), space (' '), form feed ('f'),
isspace(c ) carriage return ('r'), horizontal tab ('t'), or vertical tab ('v') and false
otherwise
iscntrl( c ) Returns true if c is a control character and false otherwise
Returns true if c is a printing character other than a space, a digit, or a
ispunct( c )
letter and false otherwise
isprint( c ) Returns true value if c is a printing character including space (' ')
29
Chapter 4
4.4) String manipulation (cont’d)
 Example 1: string length

(b) Using strlen() library function

(a) Hard coding

30
Chapter 4
4.4) String manipulation (cont’d)
 Example 2: copying and compare (Hard coding )

(a) Copying string

(b) String comparison 31


Chapter 4
4.4) String manipulation (cont’d)
 Example 3: copying, concatenate and compare using library functions

copying and concatenating


the 1st nth string

Comparing the 1st nth


characters of strings

(b) String comparison 32


Chapter 4
4.4) String manipulation (cont’d)
 Example 4: more on string manipulations

String case conversion

Reverse string

33
Chapter 4
4.4) String manipulation (cont’d)
 Example 5: string tokenization

34
Chapter 4
4.4) String manipulation (cont’d)
 Example 6: Program to display the words which start with a capital ‘A’

35
Chapter 4
Practical Exercises 2 - Strings
1. Write a program to count total number of vowels and consonants
present in a string.
2. Design a program to find the frequency of characters within string and
display character with largest and smallest frequency respectively.
3. Write a program that find the frequency of vowel, consonant, digit and
special character
4. Design a program to check either the word is palindrome or not using
loop.
5. Write a program to remove non-alphabet character from string
6. Write a program to store and print the names of your two favorite
television programs. Store these programs in two character arrays.
Initialize one of the strings (assign it the first program’s name) at the
time you declare the array. Initialize the second value in the body of
the program with the strcpy() function.
7. Write an application that inputs a line of text and outputs the text
twice, once in all uppercase and once in all lowercase letters. 36
Chapter 2
Reading Resources/Materials
Chapter 13:
 Diane Zak; An Introduction to Programming with C++ (8th Edition),
2016 Cengage Learning

Chapter 8:
Walter Savitch; Problem Solving With C++ [10th edition,
University of California, San Diego, 2018

Link:
 https://www.w3schools.in/category/cplusplus-tutorial/
37
Thank You
For Your Attention!!

38

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy