### File

```Tutorial 9 String and Structure
NUS SCHOOL OF COMPUTING
CS1010E PROGRAMMING METHODOLOGY
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
1
Quick Summary
1. Structure introduces the concept of an Object. The Object can
contain many attributes. (Person: Gender, Age, etc.)
1. Two ways to declare a structure:
typedef struct{…}[identifier];
struct [identifier]{…};
2. To retrieve the attributes of a structure use “.” operator:
Person.Gender = “male”;
Person.Age = 20;
3. For Structures with pointers:
Person->Gender = “male”;
Person->Age = 20;
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
2
Q1: Self Implementation of <string.h>
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
3
Q1: Self Implementation of <string.h>
R
A
D
A
Left
R
\0
Right
strlen = right – left;
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
4
Q1: Self Implementation of <string.h>
R
A
D
A
R
\0
s
2
s
1
t
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
5
Q1: Self Implementation of <string.h>
R
A
s
2
s
1
t
R
D
A
R
\0
my_strcpy(s1,s2);
A
\0
R
A
CS1010E TUTORIAL SLIDES
D
A
R
\0
PREPARED BY WU CHAO
6
Q1: Self Implementation of <string.h>
R
A
D
A
R
\0
Loop until (s1 becomes \0) or (a difference is found):
s
2
s
1
R
Return the difference
A
D
A
CS1010E TUTORIAL SLIDES
R
\0
PREPARED BY WU CHAO
7
Q2: Christmas Carol
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
8
Q2: Christmas Carol
On any particular day:
Constant strings:
“On the ”
“day of Christmas,\n”
“my true…\n”
“and ”
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
9
Q2: Christmas Carol
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
10
Q2: Christmas Carol
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
11
Q2: Christmas Carol
Because a word ends with either of the following:
Space, Comma, Fullstop.
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
12
Q2: Christmas Carol
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
13
Q3: Overlapping Rectangles
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
14
Q3: Overlapping Rectangles
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
15
Q3: Overlapping Rectangles
If the points do not fulfil the pre-condition required,
we just need to swap the two points.
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
16
Q3: Overlapping Rectangles
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
17
Q3: Overlapping Rectangles
It is easier to check if the two rectangles do not overlap:
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
18
Q3: Overlapping Rectangles
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
19
Q4: Snapback Problem
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
20
Q4: Snapback Problem
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
21
Q4: Snapback Problem
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
22
Q4: Snapback Problem
Bubble sort algorithm is used.
This is an improved version of the
bubble sort.
What is the difference?
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
23
Q4: Snapback Problem
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
24
Q4: Snapback Problem
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
25
Q4: Snapback Problem
1
0
0
1
1
…
1
1
0
In the binary sequence, 1 means take the item number j, 0 means omit
the item number j.
We use this binary sequence approach to enumerate all the possible
ways to take the items available and compare the value.
CS1010E TUTORIAL SLIDES
PREPARED BY WU CHAO
26
```