SlideShare a Scribd company logo
STRINGS
1
STRINGS
•1-d arrays of type char
•By convention, a string in C is terminated by the end-
of-string sentinel ‘0’ (null character)
•char s[21] - can have variable length string delimited
with 0
•Max length of the string that can be stored is 20 as the size
must include storage needed for the ‘0’
•String constants : “hello”, “abc”
•“abc” is a character array of size 4
2
CHARACTER ARRAYS AND STRINGS
char C[4] = { 's', 'k', 'u', 'p'};
• C[0] gets the value 'a', C[1] the value 'b', and so on. The last
(7th) location receives the null character ‘0’
• Null-terminated (last character is ‘0’) character arrays are
also called strings
• Strings can be initialized in an alternative way. The last
declaration is equivalent to:
char C[4] = "skup";
• The trailing null character is missing here. C automatically
puts it at the end if you define it like this
3
READING STRINGS: %S FORMAT
4
void main()
{
char name[25];
scanf("%s", name);
printf("Name = %s n", name);
}
%s reads a string into a character array
given the array name or start address.
It ends the string with ‘0’
AN EXAMPLE
5
void main()
{
#define SIZE 25
int i, count=0;
char name[SIZE];
scanf("%s", name);
printf("Name = %s n", name);
for (i=0; name[i]!='0'; i++)
if (name[i] == 'a') count++;
printf("Total a's = %dn", count);
}
Note that character strings read
in %s format end with ‘0’
DIFFERENCES : ARRAY & POINTERS
char *p = “abcde”;
The compiler allocates space for
p, puts the string constant
“abcde” in memory somewhere
else, initializes p with the base
address of the string constant
char s[ ] = “abcde”;
 char s[ ] =
{‘a’,’b’,’c’,’d’,’e’.’0’};
The compiler allocates 6 bytes of
memory for the array s which are
initialized with the 6 characters
6
a b c d e 0
a b c d e 0
p
S
STRING CONSTANT
•A string constant is treated as a pointer
•Its value is the base address of the string
char *p = “abc”;
printf (“%s %sn”,p,p+1); /* abc bc is printed */
7
a b c 0
p
LIBRARY FUNCTIONS FOR STRING
HANDLING
• You can write your own C code to do different operations on
strings like finding the length of a string, copying one string
to another, appending one string to the end of another etc.
• C library provides standard functions for these that you can
call, so no need to write your own code
• To use them, you must do
#include <string.h>
At the beginning of your program (after #include <stdio.h>)
8
STRING FUNCTIONS
• strlen : finds the length of a string
• strcat : concatenates one string at the end of another
• strcmp : compares two strings lexicographically
• strcpy : copies one string to another
9
strlen()
int strlen(const char *s)
• Takes a null-terminated strings
(we routinely refer to the char
pointer that points to a null-
terminated char array as a
string)
• Returns the length of the
string, not counting the null
(0) character
10
int strlen (const char *s) {
int n;
for (n=0; *s!=‘0’; ++s)
++n;
return n;
}
You cannot change contents
of s in the function
STRCAT()
• char *strcat (char *s1,
const char *s2);
• Takes 2 strings as
arguments, concatenates
them, and puts the result
in s1. Returns s1.
Programmer must ensure
that s1 points to enough
space to hold the result.
11
char *strcat(char *s1, const char *s2)
{
char *p = s1;
while (*p != ‘0’) /* go to end */
++p;
while(*s2 != ‘0’)
*p++ = *s2++; /* copy */
*p = ‘0’;
return s1;
}
You cannot change contents
of s2 in the function
STRCMP()
12
int strcmp (const char *s1,
const char *s2);
Two strings are passed as
arguments. An integer is
returned that is less
than, equal to, or
greater than 0,
depending on whether
s1 is lexicographically
less than, equal to, or
greater than s2.
STRCMP()
13
int strcmp (const char *s1,
const char *s2);
Two strings are passed as
arguments. An integer is
returned that is less
than, equal to, or
greater than 0,
depending on whether
s1 is lexicographically
less than, equal to, or
greater than s2.
int strcmp(char *s1, const char *s2)
{
for (;*s1!=‘0’&&*s2!=‘0’; s1++,s2++)
{
if (*s1>*s2) return 1;
if (*s2>*s1) return -1;
}
if (*s1 != ‘0’) return 1;
if (*s2 != ‘0’) return -1;
return 0;
}
char *strcpy (char *s1, char *s2);
The characters is the string s2 are copied into s1 until 0 is
moved. Whatever exists in s1 is overwritten. It is assumed
that s1 has enough space to hold the result. The pointer s1 is
returned.
14
STRCPY()
char *strcpy (char *s1, const char *s2);
The characters is the string s2 are copied into s1 until ‘0’ is
moved. Whatever exists in s1 is overwritten. It is assumed
that s1 has enough space to hold the result. The pointer s1 is
returned.
15
char * strcpy (char *s1, const char *s2)
{
char *p = s1;
while (*p++ = *s2++) ;
return s1;
}
STRCPY()
16
EXAMPLE: USING STRING FUNCTIONS
25
9
-1
big sky country
beautiful brown cows!
int main()
{
char s1[ ] = "beautiful big sky country",
s2[ ] = "how now brown cow";
printf("%dn",strlen (s1));
printf("%dn",strlen (s2+8));
printf("%dn", strcmp(s1,s2));
printf("%sn",s1+10);
strcpy(s1+10,s2+8);
strcat(s1,"s!");
printf("%sn", s1);
return 0;
}
Output
Ad

Recommended

string.ppt
string.ppt
lakshmanarao027MVGRC
 
Unit-3 Strings.pptreeeeeeeeeeeeeereeeeere
Unit-3 Strings.pptreeeeeeeeeeeeeereeeeere
edukuldeep2005
 
string function with example...................
string function with example...................
NishantsrivastavaV
 
Lesson in Strings for C Programming Lessons
Lesson in Strings for C Programming Lessons
JamesChristianGadian
 
Strings in c mrs.sowmya jyothi
Strings in c mrs.sowmya jyothi
Sowmya Jyothi
 
STRINGS IN C MRS.SOWMYA JYOTHI.pdf
STRINGS IN C MRS.SOWMYA JYOTHI.pdf
SowmyaJyothi3
 
String & its application
String & its application
Tech_MX
 
Strings
Strings
Mitali Chugh
 
[ITP - Lecture 17] Strings in C/C++
[ITP - Lecture 17] Strings in C/C++
Muhammad Hammad Waseem
 
0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdf
ssusere19c741
 
Strings CPU GTU
Strings CPU GTU
Maharshi Dave
 
Strings in C language
Strings in C language
P M Patil
 
Strings in c
Strings in c
vampugani
 
Programming in C - Fundamental Study of Strings
Programming in C - Fundamental Study of Strings
Dr. Chandrakant Divate
 
14 strings
14 strings
Rohit Shrivastava
 
Module-2_Strings concepts in c programming
Module-2_Strings concepts in c programming
CHAITRAB29
 
Strings part2
Strings part2
yndaravind
 
strings-150319180934-conversion-gate01.pdf
strings-150319180934-conversion-gate01.pdf
HEMAHEMS5
 
Strings and pointers
Strings and pointers
Gurpreet Singh Sond
 
Principals of Programming in CModule -5.pdfModule-4.pdf
Principals of Programming in CModule -5.pdfModule-4.pdf
anilcsbs
 
Strings(2007)
Strings(2007)
svit vasad
 
String.pptx
String.pptx
Ananthi Palanisamy
 
fundamentals of c programming_String.pptx
fundamentals of c programming_String.pptx
JStalinAsstProfessor
 
CSE 1102 - Lecture_7 - Strings_in_C.pptx
CSE 1102 - Lecture_7 - Strings_in_C.pptx
Salim Shadman Ankur
 
Strings in C
Strings in C
Kamal Acharya
 
5 2. string processing
5 2. string processing
웅식 전
 
C programming - String
C programming - String
Achyut Devkota
 
Presentation more c_programmingcharacter_and_string_handling_
Presentation more c_programmingcharacter_and_string_handling_
KarthicaMarasamy
 
C Programming Intro.ppt
C Programming Intro.ppt
LECO9
 
Embedded Systems.pptx
Embedded Systems.pptx
LECO9
 

More Related Content

Similar to cprogramming strings.pptx (20)

[ITP - Lecture 17] Strings in C/C++
[ITP - Lecture 17] Strings in C/C++
Muhammad Hammad Waseem
 
0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdf
ssusere19c741
 
Strings CPU GTU
Strings CPU GTU
Maharshi Dave
 
Strings in C language
Strings in C language
P M Patil
 
Strings in c
Strings in c
vampugani
 
Programming in C - Fundamental Study of Strings
Programming in C - Fundamental Study of Strings
Dr. Chandrakant Divate
 
14 strings
14 strings
Rohit Shrivastava
 
Module-2_Strings concepts in c programming
Module-2_Strings concepts in c programming
CHAITRAB29
 
Strings part2
Strings part2
yndaravind
 
strings-150319180934-conversion-gate01.pdf
strings-150319180934-conversion-gate01.pdf
HEMAHEMS5
 
Strings and pointers
Strings and pointers
Gurpreet Singh Sond
 
Principals of Programming in CModule -5.pdfModule-4.pdf
Principals of Programming in CModule -5.pdfModule-4.pdf
anilcsbs
 
Strings(2007)
Strings(2007)
svit vasad
 
String.pptx
String.pptx
Ananthi Palanisamy
 
fundamentals of c programming_String.pptx
fundamentals of c programming_String.pptx
JStalinAsstProfessor
 
CSE 1102 - Lecture_7 - Strings_in_C.pptx
CSE 1102 - Lecture_7 - Strings_in_C.pptx
Salim Shadman Ankur
 
Strings in C
Strings in C
Kamal Acharya
 
5 2. string processing
5 2. string processing
웅식 전
 
C programming - String
C programming - String
Achyut Devkota
 
Presentation more c_programmingcharacter_and_string_handling_
Presentation more c_programmingcharacter_and_string_handling_
KarthicaMarasamy
 
0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdf
ssusere19c741
 
Strings in C language
Strings in C language
P M Patil
 
Strings in c
Strings in c
vampugani
 
Programming in C - Fundamental Study of Strings
Programming in C - Fundamental Study of Strings
Dr. Chandrakant Divate
 
Module-2_Strings concepts in c programming
Module-2_Strings concepts in c programming
CHAITRAB29
 
strings-150319180934-conversion-gate01.pdf
strings-150319180934-conversion-gate01.pdf
HEMAHEMS5
 
Principals of Programming in CModule -5.pdfModule-4.pdf
Principals of Programming in CModule -5.pdfModule-4.pdf
anilcsbs
 
fundamentals of c programming_String.pptx
fundamentals of c programming_String.pptx
JStalinAsstProfessor
 
CSE 1102 - Lecture_7 - Strings_in_C.pptx
CSE 1102 - Lecture_7 - Strings_in_C.pptx
Salim Shadman Ankur
 
5 2. string processing
5 2. string processing
웅식 전
 
C programming - String
C programming - String
Achyut Devkota
 
Presentation more c_programmingcharacter_and_string_handling_
Presentation more c_programmingcharacter_and_string_handling_
KarthicaMarasamy
 

More from LECO9 (20)

C Programming Intro.ppt
C Programming Intro.ppt
LECO9
 
Embedded Systems.pptx
Embedded Systems.pptx
LECO9
 
Basic Electronics.pptx
Basic Electronics.pptx
LECO9
 
Intro to Microcontroller.pptx
Intro to Microcontroller.pptx
LECO9
 
PIC_Intro.pptx
PIC_Intro.pptx
LECO9
 
DATATYPES,KEYWORDS,FORMATSPECS[1].pptx
DATATYPES,KEYWORDS,FORMATSPECS[1].pptx
LECO9
 
STACKS AND QUEUES.pptx
STACKS AND QUEUES.pptx
LECO9
 
UNIONS IN C.pptx
UNIONS IN C.pptx
LECO9
 
Processes, Threads.pptx
Processes, Threads.pptx
LECO9
 
OPERATORS IN C.pptx
OPERATORS IN C.pptx
LECO9
 
DATA STRUCTURES AND LINKED LISTS IN C.pptx
DATA STRUCTURES AND LINKED LISTS IN C.pptx
LECO9
 
FUNCTIONS IN C.pptx
FUNCTIONS IN C.pptx
LECO9
 
DESIGN PATTERN.pptx
DESIGN PATTERN.pptx
LECO9
 
INTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptx
LECO9
 
cprogramming Structures.pptx
cprogramming Structures.pptx
LECO9
 
POINTERS.pptx
POINTERS.pptx
LECO9
 
DYNAMIC MEMORY ALLOCATION.pptx
DYNAMIC MEMORY ALLOCATION.pptx
LECO9
 
C-Programming C LIBRARIES AND USER DEFINED LIBRARIES.pptx
C-Programming C LIBRARIES AND USER DEFINED LIBRARIES.pptx
LECO9
 
C-Programming Control statements.pptx
C-Programming Control statements.pptx
LECO9
 
C-Programming Function pointers.pptx
C-Programming Function pointers.pptx
LECO9
 
C Programming Intro.ppt
C Programming Intro.ppt
LECO9
 
Embedded Systems.pptx
Embedded Systems.pptx
LECO9
 
Basic Electronics.pptx
Basic Electronics.pptx
LECO9
 
Intro to Microcontroller.pptx
Intro to Microcontroller.pptx
LECO9
 
PIC_Intro.pptx
PIC_Intro.pptx
LECO9
 
DATATYPES,KEYWORDS,FORMATSPECS[1].pptx
DATATYPES,KEYWORDS,FORMATSPECS[1].pptx
LECO9
 
STACKS AND QUEUES.pptx
STACKS AND QUEUES.pptx
LECO9
 
UNIONS IN C.pptx
UNIONS IN C.pptx
LECO9
 
Processes, Threads.pptx
Processes, Threads.pptx
LECO9
 
OPERATORS IN C.pptx
OPERATORS IN C.pptx
LECO9
 
DATA STRUCTURES AND LINKED LISTS IN C.pptx
DATA STRUCTURES AND LINKED LISTS IN C.pptx
LECO9
 
FUNCTIONS IN C.pptx
FUNCTIONS IN C.pptx
LECO9
 
DESIGN PATTERN.pptx
DESIGN PATTERN.pptx
LECO9
 
INTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptx
LECO9
 
cprogramming Structures.pptx
cprogramming Structures.pptx
LECO9
 
POINTERS.pptx
POINTERS.pptx
LECO9
 
DYNAMIC MEMORY ALLOCATION.pptx
DYNAMIC MEMORY ALLOCATION.pptx
LECO9
 
C-Programming C LIBRARIES AND USER DEFINED LIBRARIES.pptx
C-Programming C LIBRARIES AND USER DEFINED LIBRARIES.pptx
LECO9
 
C-Programming Control statements.pptx
C-Programming Control statements.pptx
LECO9
 
C-Programming Function pointers.pptx
C-Programming Function pointers.pptx
LECO9
 
Ad

Recently uploaded (20)

Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Mark Billinghurst
 
دراسة حاله لقرية تقع في جنوب غرب السودان
دراسة حاله لقرية تقع في جنوب غرب السودان
محمد قصص فتوتة
 
Structured Programming with C++ :: Kjell Backman
Structured Programming with C++ :: Kjell Backman
Shabista Imam
 
輪読会資料_Miipher and Miipher2 .
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
hosseinihamid192023
 
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
cl144
 
System design handwritten notes guidance
System design handwritten notes guidance
Shabista Imam
 
AI_Presentation (1). Artificial intelligence
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Mark Billinghurst
 
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Shabista Imam
 
Solar thermal – Flat plate and concentrating collectors .pptx
Solar thermal – Flat plate and concentrating collectors .pptx
jdaniabraham1
 
Abraham Silberschatz-Operating System Concepts (9th,2012.12).pdf
Abraham Silberschatz-Operating System Concepts (9th,2012.12).pdf
Shabista Imam
 
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
 
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
 
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 
Introduction to sensing and Week-1.pptx
Introduction to sensing and Week-1.pptx
KNaveenKumarECE
 
Modern multi-proposer consensus implementations
Modern multi-proposer consensus implementations
François Garillot
 
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Diego López-de-Ipiña González-de-Artaza
 
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Mark Billinghurst
 
دراسة حاله لقرية تقع في جنوب غرب السودان
دراسة حاله لقرية تقع في جنوب غرب السودان
محمد قصص فتوتة
 
Structured Programming with C++ :: Kjell Backman
Structured Programming with C++ :: Kjell Backman
Shabista Imam
 
輪読会資料_Miipher and Miipher2 .
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
Call For Papers - 17th International Conference on Wireless & Mobile Networks...
hosseinihamid192023
 
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
cl144
 
System design handwritten notes guidance
System design handwritten notes guidance
Shabista Imam
 
AI_Presentation (1). Artificial intelligence
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Mark Billinghurst
 
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Shabista Imam
 
Solar thermal – Flat plate and concentrating collectors .pptx
Solar thermal – Flat plate and concentrating collectors .pptx
jdaniabraham1
 
Abraham Silberschatz-Operating System Concepts (9th,2012.12).pdf
Abraham Silberschatz-Operating System Concepts (9th,2012.12).pdf
Shabista Imam
 
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
 
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
 
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 
Introduction to sensing and Week-1.pptx
Introduction to sensing and Week-1.pptx
KNaveenKumarECE
 
Modern multi-proposer consensus implementations
Modern multi-proposer consensus implementations
François Garillot
 
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Diego López-de-Ipiña González-de-Artaza
 
Ad

cprogramming strings.pptx

  • 2. STRINGS •1-d arrays of type char •By convention, a string in C is terminated by the end- of-string sentinel ‘0’ (null character) •char s[21] - can have variable length string delimited with 0 •Max length of the string that can be stored is 20 as the size must include storage needed for the ‘0’ •String constants : “hello”, “abc” •“abc” is a character array of size 4 2
  • 3. CHARACTER ARRAYS AND STRINGS char C[4] = { 's', 'k', 'u', 'p'}; • C[0] gets the value 'a', C[1] the value 'b', and so on. The last (7th) location receives the null character ‘0’ • Null-terminated (last character is ‘0’) character arrays are also called strings • Strings can be initialized in an alternative way. The last declaration is equivalent to: char C[4] = "skup"; • The trailing null character is missing here. C automatically puts it at the end if you define it like this 3
  • 4. READING STRINGS: %S FORMAT 4 void main() { char name[25]; scanf("%s", name); printf("Name = %s n", name); } %s reads a string into a character array given the array name or start address. It ends the string with ‘0’
  • 5. AN EXAMPLE 5 void main() { #define SIZE 25 int i, count=0; char name[SIZE]; scanf("%s", name); printf("Name = %s n", name); for (i=0; name[i]!='0'; i++) if (name[i] == 'a') count++; printf("Total a's = %dn", count); } Note that character strings read in %s format end with ‘0’
  • 6. DIFFERENCES : ARRAY & POINTERS char *p = “abcde”; The compiler allocates space for p, puts the string constant “abcde” in memory somewhere else, initializes p with the base address of the string constant char s[ ] = “abcde”;  char s[ ] = {‘a’,’b’,’c’,’d’,’e’.’0’}; The compiler allocates 6 bytes of memory for the array s which are initialized with the 6 characters 6 a b c d e 0 a b c d e 0 p S
  • 7. STRING CONSTANT •A string constant is treated as a pointer •Its value is the base address of the string char *p = “abc”; printf (“%s %sn”,p,p+1); /* abc bc is printed */ 7 a b c 0 p
  • 8. LIBRARY FUNCTIONS FOR STRING HANDLING • You can write your own C code to do different operations on strings like finding the length of a string, copying one string to another, appending one string to the end of another etc. • C library provides standard functions for these that you can call, so no need to write your own code • To use them, you must do #include <string.h> At the beginning of your program (after #include <stdio.h>) 8
  • 9. STRING FUNCTIONS • strlen : finds the length of a string • strcat : concatenates one string at the end of another • strcmp : compares two strings lexicographically • strcpy : copies one string to another 9
  • 10. strlen() int strlen(const char *s) • Takes a null-terminated strings (we routinely refer to the char pointer that points to a null- terminated char array as a string) • Returns the length of the string, not counting the null (0) character 10 int strlen (const char *s) { int n; for (n=0; *s!=‘0’; ++s) ++n; return n; } You cannot change contents of s in the function
  • 11. STRCAT() • char *strcat (char *s1, const char *s2); • Takes 2 strings as arguments, concatenates them, and puts the result in s1. Returns s1. Programmer must ensure that s1 points to enough space to hold the result. 11 char *strcat(char *s1, const char *s2) { char *p = s1; while (*p != ‘0’) /* go to end */ ++p; while(*s2 != ‘0’) *p++ = *s2++; /* copy */ *p = ‘0’; return s1; } You cannot change contents of s2 in the function
  • 12. STRCMP() 12 int strcmp (const char *s1, const char *s2); Two strings are passed as arguments. An integer is returned that is less than, equal to, or greater than 0, depending on whether s1 is lexicographically less than, equal to, or greater than s2.
  • 13. STRCMP() 13 int strcmp (const char *s1, const char *s2); Two strings are passed as arguments. An integer is returned that is less than, equal to, or greater than 0, depending on whether s1 is lexicographically less than, equal to, or greater than s2. int strcmp(char *s1, const char *s2) { for (;*s1!=‘0’&&*s2!=‘0’; s1++,s2++) { if (*s1>*s2) return 1; if (*s2>*s1) return -1; } if (*s1 != ‘0’) return 1; if (*s2 != ‘0’) return -1; return 0; }
  • 14. char *strcpy (char *s1, char *s2); The characters is the string s2 are copied into s1 until 0 is moved. Whatever exists in s1 is overwritten. It is assumed that s1 has enough space to hold the result. The pointer s1 is returned. 14 STRCPY()
  • 15. char *strcpy (char *s1, const char *s2); The characters is the string s2 are copied into s1 until ‘0’ is moved. Whatever exists in s1 is overwritten. It is assumed that s1 has enough space to hold the result. The pointer s1 is returned. 15 char * strcpy (char *s1, const char *s2) { char *p = s1; while (*p++ = *s2++) ; return s1; } STRCPY()
  • 16. 16 EXAMPLE: USING STRING FUNCTIONS 25 9 -1 big sky country beautiful brown cows! int main() { char s1[ ] = "beautiful big sky country", s2[ ] = "how now brown cow"; printf("%dn",strlen (s1)); printf("%dn",strlen (s2+8)); printf("%dn", strcmp(s1,s2)); printf("%sn",s1+10); strcpy(s1+10,s2+8); strcat(s1,"s!"); printf("%sn", s1); return 0; } Output