1 introduction to computing: lecture 16 character strings dr. bekir karlik yasar university...
TRANSCRIPT
![Page 1: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/1.jpg)
1
Introduction to Computing: Lecture 16
Character Strings
Dr. Bekir KARLIKYasar University
Department of Computer [email protected]
![Page 2: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/2.jpg)
2
Topics
• Strings– Representation – Declaration – Functions – Common mistakes– Index of a char in a string
![Page 3: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/3.jpg)
3
On the Nature of Strings• Recall: Main memory
– contiguous array of cells– each cell has an address
0x1FFF 0x2000 0x2001 0x20020x1FFEetc.
![Page 4: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/4.jpg)
4ch
On the Nature of Strings (cont.)• Recall: Variable declaration
– sets aside a “box” to contain a value
Example: char ch;
ch = ‘B’;
0x1FFF 0x2000 0x2001 0x20020x1FFEetc.
‘B’
![Page 5: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/5.jpg)
5
On the Nature of Strings (cont.)
Example: char name[5];
Specifies numberof cells in the array
• String declaration– sets aside an array of cells– each cell contains a char– address of first cell in the array
![Page 6: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/6.jpg)
6
On the Nature of Strings (cont.)• String declaration– sets aside an array of cells– each cell contains a char– address of first cell in the array
Example: char name[5];
0x2000 0x2004
name
is 0x2000
![Page 7: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/7.jpg)
7
Character StringsDeclaration 1:
char name[5];
Declaration 2:
#define MAXLENGTH 5
char name[MAXLENGTH];
0x2000 0x2004
name
is 0x2000
![Page 8: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/8.jpg)
8
String Input/Output
#include <stdio.h>
#define MAXLENGTH 15
int main(){ char string1[MAXLENGTH]; char string2[MAXLENGTH];
scanf("%s %s", string1, string2); printf("%s %s\n", string1, string2);
return 0;}
No ampersand (&)!
![Page 9: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/9.jpg)
9
Character Strings
Initialization:
char name[5] = “Ali”;
A l i \0
Terminating Character:• Marks the end of string• Special char: ’\0’ • aka NUL (single L)
0x2000 0x2004
name
is 0x2000
![Page 10: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/10.jpg)
10
Character Strings
Initialization:
char name[5] = “Ali”;
Can storeat most 4 letters,because of `\0’
A l i \0
0x2000 0x2004
name
is 0x2000
![Page 11: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/11.jpg)
11
Character Strings
Declaration 3:
char name[] = “Ali”;
Takes up an extra cell for ‘\0’
A l i \0
0x2000 0x2003
name
is 0x2000
![Page 12: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/12.jpg)
12
Character Strings
Declaration 4:
char *name = “Ali”;
Result is “undefined”if you try to modify this
string.
A l i \0
0x3000 0x3003
0x3000
name
![Page 13: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/13.jpg)
13
Character Strings
Declaration 5:
char name[];
String with arbitrary length?
No! Will cause an error.
![Page 14: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/14.jpg)
14
A Char in a String
• The size of a character string is fixed.
• Character at position index: –string[index]– first character has index 0
![Page 15: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/15.jpg)
15
char name[8] = “Aise”;int i = 2;
printf(“Char at index %d is %c.\n”, i, name[i]);
A Char in a String
output: Char at index 2 is h.
index 0 index 4
A i s e \0
0x3995 0x399C
name
is 0x3995
![Page 16: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/16.jpg)
16
A Char in a String
index 2
A i s e \0
0x3995 0x399C
name
is 0x3995
char name[8] = “Aise”;
name[2] = ‘X’;printf(“Name: %s\n”, name);
![Page 17: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/17.jpg)
17
A i X e \0
0x3995 0x399C
name
is 0x3995
output: Name: AiXe
index 2
char name[8] = “Aise”;
name[2] = ‘X’;printf(“Name: %s\n”, name);
A Char in a String
![Page 18: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/18.jpg)
18
String Operations
• #include <string.h> • Operations:
– Assignment: strcpy()– Concatenation: strcat()– Comparison: strcmp()– Length: strlen()
![Page 19: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/19.jpg)
19
#include <stdio.h>#include <string.h>
#define MAXLENGTH 100
int main(){ char string1[MAXLENGTH]; char string2[MAXLENGTH];
strcpy(string1, “Hello World!”); strcpy(string2, string1);
return 0;}
String Operation: Assignment
string1: <garbage>string2: <garbage>
![Page 20: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/20.jpg)
20
String Operation: Assignment#include <stdio.h>#include <string.h>
#define MAXLENGTH 100
int main(){ char string1[MAXLENGTH]; char string2[MAXLENGTH];
strcpy(string1, “Hello World!”); strcpy(string2, string1);
return 0;}string1: “Hello World!”string2: <garbage>
![Page 21: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/21.jpg)
21
String Operation: Assignment#include <stdio.h>#include <string.h>
#define MAXLENGTH 100
int main(){ char string1[MAXLENGTH]; char string2[MAXLENGTH];
strcpy(string1, “Hello World!”); strcpy(string2, string1);
return 0;}
string1: “Hello World!”string2: “Hello World!”
![Page 22: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/22.jpg)
22
char name1[5] = “Ali”;char name2[5] = “Sami”;
name2 = name1;
Common Mistake:
Wrong Assignment
Example 1:
Error: “LValue required....”
![Page 23: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/23.jpg)
23
char *name1 = “Ali”;char *name2 = “Sami”;
name2 = name1;
Common Mistake:
Bad Assignment
Example 2:
Better avoid initialising
strings this way.(Usually, no error message.)
![Page 24: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/24.jpg)
24
Common Mistake:
Bad Assignment
S a m i \0
0x3990 0x3994
A l i \0
0x2000 0x2003
0x2000
name1
0x3990
name2
char *name1 = “Ali”;char *name2 = “Sami”;
![Page 25: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/25.jpg)
25
Common Mistake:
Bad Assignment
S a m i \0
0x3990 0x3994
A l i \0
0x2000 0x2003
0x2000
name1
0x2000
name2
name2 = name1;
![Page 26: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/26.jpg)
26
Common Mistake:
Not enough space
A l i \0
0x2000 0x2003
char name[] = “Ali”;
strcpy(name, “Samir”);
name
is 0x2000
![Page 27: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/27.jpg)
27
Common Mistake:
Not enough space
S a m i r \0
0x2000 0x2003
char name[] = “Ali”;
strcpy(name, “Samir”);
Requires caution.
name
is 0x2000
![Page 28: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/28.jpg)
28
String Operation: Concatenation
char string1[MAXLENGTH];char string2[MAXLENGTH];
strcpy(string1, “Goodbye”);strcpy(string2, “, Cruel ”);
strcat(string1, string2);strcat(string1, string2);strcat(string1, “World!”);
string1: “Goodbye”string2: “, Cruel “
![Page 29: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/29.jpg)
29
char string1[MAXLENGTH];char string2[MAXLENGTH];
strcpy(string1, “Goodbye”);strcpy(string2, “, Cruel ”);
strcat(string1, string2);strcat(string1, string2);strcat(string1, “World!”);
string1: “Goodbye, Cruel ”string2: “, Cruel “
String Operation: Concatenation
![Page 30: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/30.jpg)
30
string1: “Goodbye, Cruel , Cruel ”string2: “, Cruel “
String Operation: Concatenation
char string1[MAXLENGTH];char string2[MAXLENGTH];
strcpy(string1, “Goodbye”);strcpy(string2, “, Cruel ”);
strcat(string1, string2);strcat(string1, string2);strcat(string1, “World!”);
![Page 31: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/31.jpg)
31
string1: “Goodbye, Cruel , Cruel World!”string2: “, Cruel “
String Operation: Concatenation
char string1[MAXLENGTH];char string2[MAXLENGTH];
strcpy(string1, “Goodbye”);strcpy(string2, “, Cruel ”);
strcat(string1, string2);strcat(string1, string2);strcat(string1, “World!”);
![Page 32: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/32.jpg)
32
Common Mistake:
char name[5];
strcpy(name, “Ali”);strcat(name, “ Osman”);
Not enough space
A l i \0
0x2000 0x2004
name
is 0x2000
![Page 33: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/33.jpg)
33
Common Mistake:
char name[5];
strcpy(name, “Ali”);strcat(name, “ Osman”);
Not enough space
A l i O s m a
0x2000 0x2004
n \0name
is 0x2000
![Page 34: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/34.jpg)
34
strcpy(string1, “Apple”);strcpy(string2, “Wax”);
if (strcmp(string1, string2) < 0){ printf(“%s %s\n”, string1, string2);}else{ printf(“%s %s\n”, string2, string1);}
output: Apple Wax
String Operation: Comparison
![Page 35: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/35.jpg)
35
strcpy(string1, “Apple”);strcpy(string2, “Wax”);
if (strcmp(string1, string2) < 0){ printf(“%s %s\n”, string1, string2);}else{ printf(“%s %s\n”, string2, string1);}
String Operation: Comparison
Returns:
negative if string1 < string2
zero if string1 == string2
positive if string1 > string2
![Page 36: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/36.jpg)
36
strcpy(string1, “Apple”);strcpy(string2, “Wax”);
if (string1 < string2){ printf(“%s %s\n”, string1, string2);}else{ printf(“%s %s\n”, string2, string1);}
Common Mistake:
Wrong Comparison
![Page 37: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/37.jpg)
37
output: 5
Number of char’sbefore the `\0’.
char string1[100];
strcpy(string1, “Apple”);
printf(“%d\n”, strlen(string1));
String Operation: Length
![Page 38: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/38.jpg)
38
Common Mistake:
char name[5];
strcpy(name, “Bekir”);
Not enough space
Don’t forget the ‘\0’.
B e k i r \0
0x3990 0x3994
name
is 0x3990
![Page 39: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/39.jpg)
39
Character Strings as Parameters
• Strings as formal parameters are declared as char* or char[]– Examples:
void Greet ( char* name )
void Greet ( char name[] )
• As pointer to the first element of the string (array of chars).
• Changes to the string inside the function affect the actual string.
![Page 40: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/40.jpg)
40
Example: hello3.c
#include <stdio.h>#include <string.h>#define NAMELEN 50
/* Print a simple greeting to the user. */
void Greet ( char * name )
{
strcat(name,"! How are you?");
}
int main(){ char user[NAMELEN];
printf("Who are you? ");
scanf("%s", user);
Greet(user);
printf("%s\n", user);
return 0;}
user
Bekir\0
![Page 41: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/41.jpg)
41
int main(){ char user[NAMELEN];
printf("Who are you? ");
scanf("%s", user);
Greet(user);
printf("%s\n", user);
return 0;}
Example: hello3.c
#include <stdio.h>#include <string.h>#define NAMELEN 50
/* Print a simple greeting to the user. */
void Greet ( char * name )
{
strcat(name,"! How are you?");
}
name user
Bekir\0
![Page 42: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/42.jpg)
42
int main(){ char user[NAMELEN];
printf("Who are you? ");
scanf("%s", user);
Greet(user);
printf("%s\n", user);
return 0;}
Example: hello3.c
#include <stdio.h>#include <string.h>#define NAMELEN 50
/* Print a simple greeting to the user. */
void Greet ( char * name )
{
strcat(name,"! How are you?");
}
user
Bekir! How are you?\0
name
![Page 43: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/43.jpg)
43
int main(){ char user[NAMELEN];
printf("Who are you? ");
scanf("%s", user);
Greet(user);
printf("%s\n", user);
return 0;}
Example: hello3.c
#include <stdio.h>#include <string.h>#define NAMELEN 50
/* Print a simple greeting to the user. */
void Greet ( char * name )
{
strcat(name,"! How are you?");
}
user
Bekir! How are you?\0
![Page 44: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/44.jpg)
44
int main(){ char user[NAMELEN];
printf("Who are you? ");
scanf("%s", user);
Greet(user);
printf("%s\n", user);
return 0;}
More of scanf demystified
No ampersand (&) in scanf with strings!
![Page 45: 1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader030.vdocuments.site/reader030/viewer/2022032518/56649ccc5503460f9499634f/html5/thumbnails/45.jpg)
45
Summary
• A string is a contiguous array of chars• The string identifier is the address of the first char
in the string• Individual chars are accessed using the str[index] notation
• There are C library functions for copying, concatenating and comparing strings.