Soumettre la recherche
Mettre en ligne
358 33 powerpoint-slides_6-strings_chapter-6
•
4 j'aime
•
1,643 vues
S
sumitbardhan
Suivre
Reema Thareja Data Structure on Strings
Lire moins
Lire la suite
Formation
Technologie
Signaler
Partager
Signaler
Partager
1 sur 21
Recommandé
358 33 powerpoint-slides_5-arrays_chapter-5
358 33 powerpoint-slides_5-arrays_chapter-5
sumitbardhan
358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3
sumitbardhan
358 33 powerpoint-slides_1-introduction-c_chapter-1
358 33 powerpoint-slides_1-introduction-c_chapter-1
sumitbardhan
358 33 powerpoint-slides_7-structures_chapter-7
358 33 powerpoint-slides_7-structures_chapter-7
sumitbardhan
358 33 powerpoint-slides_2-functions_chapter-2
358 33 powerpoint-slides_2-functions_chapter-2
sumitbardhan
Chapter 4 strings
Chapter 4 strings
Chv Raghavendran
Structure in C language
Structure in C language
CGC Technical campus,Mohali
C# basics
C# basics
Dinesh kumar
Recommandé
358 33 powerpoint-slides_5-arrays_chapter-5
358 33 powerpoint-slides_5-arrays_chapter-5
sumitbardhan
358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3
sumitbardhan
358 33 powerpoint-slides_1-introduction-c_chapter-1
358 33 powerpoint-slides_1-introduction-c_chapter-1
sumitbardhan
358 33 powerpoint-slides_7-structures_chapter-7
358 33 powerpoint-slides_7-structures_chapter-7
sumitbardhan
358 33 powerpoint-slides_2-functions_chapter-2
358 33 powerpoint-slides_2-functions_chapter-2
sumitbardhan
Chapter 4 strings
Chapter 4 strings
Chv Raghavendran
Structure in C language
Structure in C language
CGC Technical campus,Mohali
C# basics
C# basics
Dinesh kumar
Pointers in c++
Pointers in c++
sai tarlekar
Basic Input and Output
Basic Input and Output
Nurul Zakiah Zamri Tan
Stack and Queue
Stack and Queue
Apurbo Datta
Array in c language
Array in c language
home
File handling in c
File handling in c
aakanksha s
Functions in c language
Functions in c language
tanmaymodi4
File in C language
File in C language
Manash Kumar Mondal
9. Input Output in java
9. Input Output in java
Nilesh Dalvi
Character Array and String
Character Array and String
Tasnima Hamid
6. static keyword
6. static keyword
Indu Sharma Bhardwaj
Dynamic memory allocation
Dynamic memory allocation
Viji B
datatypes and variables in c language
datatypes and variables in c language
Rai University
Overview of c language
Overview of c language
shalini392
Introduction to C Programming - I
Introduction to C Programming - I
vampugani
Programming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture Notes
Sreedhar Chowdam
Functions in C
Functions in C
Kamal Acharya
C Programming Unit-5
C Programming Unit-5
Vikram Nandini
Pointer in C++
Pointer in C++
Mauryasuraj98
Class and object in C++
Class and object in C++
rprajat007
File handling in c
File handling in c
David Livingston J
Ch-12-Strings.ppt.pptx
Ch-12-Strings.ppt.pptx
ssuser3ae29f
String and string manipulation
String and string manipulation
Shahjahan Samoon
Contenu connexe
Tendances
Pointers in c++
Pointers in c++
sai tarlekar
Basic Input and Output
Basic Input and Output
Nurul Zakiah Zamri Tan
Stack and Queue
Stack and Queue
Apurbo Datta
Array in c language
Array in c language
home
File handling in c
File handling in c
aakanksha s
Functions in c language
Functions in c language
tanmaymodi4
File in C language
File in C language
Manash Kumar Mondal
9. Input Output in java
9. Input Output in java
Nilesh Dalvi
Character Array and String
Character Array and String
Tasnima Hamid
6. static keyword
6. static keyword
Indu Sharma Bhardwaj
Dynamic memory allocation
Dynamic memory allocation
Viji B
datatypes and variables in c language
datatypes and variables in c language
Rai University
Overview of c language
Overview of c language
shalini392
Introduction to C Programming - I
Introduction to C Programming - I
vampugani
Programming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture Notes
Sreedhar Chowdam
Functions in C
Functions in C
Kamal Acharya
C Programming Unit-5
C Programming Unit-5
Vikram Nandini
Pointer in C++
Pointer in C++
Mauryasuraj98
Class and object in C++
Class and object in C++
rprajat007
File handling in c
File handling in c
David Livingston J
Tendances
(20)
Pointers in c++
Pointers in c++
Basic Input and Output
Basic Input and Output
Stack and Queue
Stack and Queue
Array in c language
Array in c language
File handling in c
File handling in c
Functions in c language
Functions in c language
File in C language
File in C language
9. Input Output in java
9. Input Output in java
Character Array and String
Character Array and String
6. static keyword
6. static keyword
Dynamic memory allocation
Dynamic memory allocation
datatypes and variables in c language
datatypes and variables in c language
Overview of c language
Overview of c language
Introduction to C Programming - I
Introduction to C Programming - I
Programming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture Notes
Functions in C
Functions in C
C Programming Unit-5
C Programming Unit-5
Pointer in C++
Pointer in C++
Class and object in C++
Class and object in C++
File handling in c
File handling in c
Similaire à 358 33 powerpoint-slides_6-strings_chapter-6
Ch-12-Strings.ppt.pptx
Ch-12-Strings.ppt.pptx
ssuser3ae29f
String and string manipulation
String and string manipulation
Shahjahan Samoon
Module-2_Strings concepts in c programming
Module-2_Strings concepts in c programming
CHAITRAB29
PPS_Unit 4.ppt
PPS_Unit 4.ppt
KundanBhatkar
UNIT 4 python.pptx
UNIT 4 python.pptx
TKSanthoshRao
Python Strings and its Featues Explained in Detail .pptx
Python Strings and its Featues Explained in Detail .pptx
parmg0960
Team 1
Team 1
Sathasivam Rangasamy
Array.pptx
Array.pptx
Govindraj Chittapur
Array in C.pdf
Array in C.pdf
georgejustymirobi1
Array.pdf
Array.pdf
mounikanarra3
COm1407: Character & Strings
COm1407: Character & Strings
Hemantha Kulathilake
Python revision tour II
Python revision tour II
Mr. Vikram Singh Slathia
Strings
Strings
Amrutha Rajan
Python Strings.pptx
Python Strings.pptx
adityakumawat625
Strings in Python
Strings in Python
nitamhaske
String and string manipulation x
String and string manipulation x
Shahjahan Samoon
Python strings
Python strings
Aswini Dharmaraj
Introduction to python programming ( part-3 )
Introduction to python programming ( part-3 )
Ziyauddin Shaik
Arrays and Strings
Arrays and Strings
Dr.Subha Krishna
C (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptx
rohinitalekar1
Similaire à 358 33 powerpoint-slides_6-strings_chapter-6
(20)
Ch-12-Strings.ppt.pptx
Ch-12-Strings.ppt.pptx
String and string manipulation
String and string manipulation
Module-2_Strings concepts in c programming
Module-2_Strings concepts in c programming
PPS_Unit 4.ppt
PPS_Unit 4.ppt
UNIT 4 python.pptx
UNIT 4 python.pptx
Python Strings and its Featues Explained in Detail .pptx
Python Strings and its Featues Explained in Detail .pptx
Team 1
Team 1
Array.pptx
Array.pptx
Array in C.pdf
Array in C.pdf
Array.pdf
Array.pdf
COm1407: Character & Strings
COm1407: Character & Strings
Python revision tour II
Python revision tour II
Strings
Strings
Python Strings.pptx
Python Strings.pptx
Strings in Python
Strings in Python
String and string manipulation x
String and string manipulation x
Python strings
Python strings
Introduction to python programming ( part-3 )
Introduction to python programming ( part-3 )
Arrays and Strings
Arrays and Strings
C (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptx
Plus de sumitbardhan
358 33 powerpoint-slides_15-hashing-collision_chapter-15
358 33 powerpoint-slides_15-hashing-collision_chapter-15
sumitbardhan
358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_14-sorting_chapter-14
sumitbardhan
358 33 powerpoint-slides_13-graphs_chapter-13
358 33 powerpoint-slides_13-graphs_chapter-13
sumitbardhan
358 33 powerpoint-slides_12-heaps_chapter-12
358 33 powerpoint-slides_12-heaps_chapter-12
sumitbardhan
358 33 powerpoint-slides_11-efficient-binary-trees_chapter-11
358 33 powerpoint-slides_11-efficient-binary-trees_chapter-11
sumitbardhan
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10
sumitbardhan
358 33 powerpoint-slides_9-stacks-queues_chapter-9
358 33 powerpoint-slides_9-stacks-queues_chapter-9
sumitbardhan
358 33 powerpoint-slides_8-linked-lists_chapter-8
358 33 powerpoint-slides_8-linked-lists_chapter-8
sumitbardhan
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
sumitbardhan
358 33 powerpoint-slides_16-files-their-organization_chapter-16
358 33 powerpoint-slides_16-files-their-organization_chapter-16
sumitbardhan
Algorithm analysis
Algorithm analysis
sumitbardhan
Plus de sumitbardhan
(11)
358 33 powerpoint-slides_15-hashing-collision_chapter-15
358 33 powerpoint-slides_15-hashing-collision_chapter-15
358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_13-graphs_chapter-13
358 33 powerpoint-slides_13-graphs_chapter-13
358 33 powerpoint-slides_12-heaps_chapter-12
358 33 powerpoint-slides_12-heaps_chapter-12
358 33 powerpoint-slides_11-efficient-binary-trees_chapter-11
358 33 powerpoint-slides_11-efficient-binary-trees_chapter-11
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_9-stacks-queues_chapter-9
358 33 powerpoint-slides_9-stacks-queues_chapter-9
358 33 powerpoint-slides_8-linked-lists_chapter-8
358 33 powerpoint-slides_8-linked-lists_chapter-8
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_16-files-their-organization_chapter-16
358 33 powerpoint-slides_16-files-their-organization_chapter-16
Algorithm analysis
Algorithm analysis
Dernier
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
Dr. Sarita Anand
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
Pooky Knightsmith
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
Poonam Aher Patil
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
pradhanghanshyam7136
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
jbellavia9
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
Dr. Ravikiran H M Gowda
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
Nguyen Thanh Tu Collection
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
agholdier
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
Nirmal Dwivedi
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
Celine George
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
Celine George
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
Jisc
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
Ramakrishna Reddy Bijjam
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
TechSoup
Single or Multiple melodic lines structure
Single or Multiple melodic lines structure
dhanjurrannsibayan2
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
Celine George
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
christianmathematics
Dernier
(20)
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
Single or Multiple melodic lines structure
Single or Multiple melodic lines structure
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
358 33 powerpoint-slides_6-strings_chapter-6
1.
© Oxford University
Press 2011. All rights reserved. Data Structures Using CData Structures Using C Reema TharejaReema Thareja, Assistant Professor, Institute of Information Technology and Management, New Delhi
2.
© Oxford University
Press 2011. All rights reserved. CHAPTER 6 STRINGS
3.
© Oxford University
Press 2011. All rights reserved. INTRODUCTION • A string is a null-terminated character array. This means that after the last character, a null character (‘0’) is stored to signify the end of the character array. • The general form of declaring a string is char str[size]; • For example if we write, char str[] = “HELLO”; We are declaring a character array with 5 characters namely, H, E, L, L and O. Besides, a null character (‘0’) is stored at the end of the string. So, the internal representation of the string becomes- HELLO’0’. Note that to store a string of length 5, we need 5 + 1 locations (1 extra for the null character). The name of the character array (or the string) is a pointer to the beginning of the string. str[0] 1000 str[1] 1001 str[2] 1002 str[3] 1003 str[4] 1004 str[5] 1005 H E L L O 0
4.
© Oxford University
Press 2011. All rights reserved. READING STRINGSIf we declare a string by writing char str[100]; Then str can be read from the user by using three ways use scanf function using gets() function using getchar()function repeatedly • The string can be read using scanf() by writing scanf(“%s”, str); • The string can be read by writing gets(str); gets() takes the starting address of the string which will hold the input. The string inputted using gets() is automatically terminated with a null character. • The string can also be read by calling the getchar() repeatedly to read a sequence of single characters (unless a terminating character is entered) and simultaneously storing it in a character array. i=0; getchar(ch); while(ch != '*’) { str[i] = ch; i++; getchar(ch); } str[i] = '0';
5.
© Oxford University
Press 2011. All rights reserved. WRITING STRINGS The string can be displayed on screen using three ways • use printf() function • using puts() function • using putchar()function repeatedly The string can be displayed using printf() by writing printf(“%s”, str); The string can be displayed by writing puts(str); The string can also be written by calling the putchar() repeatedly to print a sequence of single characters i=0; while(str[i] != '0*) { putchar(str[i]); i++; }
6.
© Oxford University
Press 2011. All rights reserved. SUPPRESSING INPUT • scanf() can be used to read a field without assigning it to any variable. This is done by preceding that field's format code with a *. For example, given: • scanf("%d*c%d", &hr, &min); • The time can be read as 9:05 as a pair. Here the colon would be read but not assigned to anything. • Using a Scanset • The ANSI standard added the new scanset feature to the C language. A scanset is used to define a set of characters which may be read and assigned to the corresponding string. A scanset is defined by placing the characters inside square brackets prefixed with a % • int main() { char str[10]; printf("n Enter string: " ); scanf("%[aeiou]", str ); printf( "The string is : %s", str); return 0; } • The code will stop accepting character as soon as the user will enter a character that is not a vowel. • However, if the first character in the set is a ^ (caret symbol), then scanf() will accept any character that is not defined by the scanset. For example, if you write • scanf("%[^aeiou]", str );
7.
© Oxford University
Press 2011. All rights reserved. LENGTH • The number of characters in the string constitutes the length of the string. • For example, LENGTH(“C PROGRAMMING IS FUN”) will return 20. Note that even blank spaces are counted as characters in the string. • LENGTH(‘0’) = 0 and LENGTH(‘’) = 0 because both the strings does not contain any character. ALGORITHM TO CALCULATE THE LENGTH OF A STRING Step 1: [INITIALIZE] SET I = 0 Step 2: Repeat Step 3 while STR[I] != '0' Step 3: SET I = I + 1 [END OF LOOP] Step 4: SET LENGTH = I Step 5: END CONVERTING CHARACTERS OF A STRING INTO UPPER CASE • In memory the ASCII code of a character is stored instead of its real value. The ASCII code for A-Z varies from 65 to 91 and the ASCII code for a-z ranges from 97 to 123. So if we have to convert a lower case character into upper case, then we just need to subtract 32 from the ASCII value of the character.
8.
© Oxford University
Press 2011. All rights reserved. ALGORITHM TO CONVERT THE CHARACTERS OF STRING INTO UPPER CASE Step1: [Initialize] SET I=0 Step 2: Repeat Step 3 while STR[I] != ‘0’ Step 3: IF STR[1] > ‘a’ AND STR[I] < ‘z’ SET Upperstr[I] = STR[I] - 32 ELSE SET Upperstr[I] = STR[I] [END OF IF] [END OF LOOP] Step 4: SET Upperstr[I] = ‘0’ Step 5: EXIT CONCATENATING TWO STRINGS TO FORM A NEW STRING • IF S1 and S2 are two strings, then concatenation operation produces a string which contains characters of S1 followed by the characters of S2. ALGORITHM TO CONCATENATE TWO STRINGS 1. Initialize I =0 and J=0 2. Repeat step 3 to 4 while I <= LENGTH(str1) 3 SET new_str[J] = str1[I] 4 Set I =I+1 and J=J+1 [END of step2] 5. SET I=0 6 Repeat step 6 to 7 while I <= LENGTH(str2) 7 SET new_str[J] = str1[I] 8 Set I =I+1 and J=J+1 [END of step5] 9. SET new_str[J] = ‘0’
9.
© Oxford University
Press 2011. All rights reserved. APPENDING • Appending one string to another string involves copying the contents of the source string at the end of the destination string. For example, if S1 and S2 are two strings, then appending S1 to S2 means we have to add the contents of S1 to S2. so S1 is the source string and S2 is the destination string. The appending operation would leave the source string S1 unchanged and destination string S2 = S2+S1. ALGORITHM TO APPEND A STRING TO ANOTHER STRING Step 1: [Initialize] SET I =0 and J=0 Step 2: Repeat Step 3 while Dest_Str[I] != ‘0’ Step 3: SET I + I + 1 [END OF LOOP] Step 4: Repeat Step 5 to 7 while Source_Str[J] != ‘0’ Step 5: Dest_Str[I] = Source_Str[J] Step 6: SET I = I + 1 Step 7: SET J = J + 1 [END OF LOOP] Step 8: SET Dest_Str[J] = ‘0’ Step 9: EXIT
10.
© Oxford University
Press 2011. All rights reserved. COMPARING TWO STRINGS If S1 and S2 are two strings then comparing two strings will give either of these results- • S1 and S2 are equal • S1>S2, when in dictionary order S1 will come after S2 • S1<S2, when in dictionary order S1 precedes S2 Step1: [Initialize] SET I=0, SAME =0 Step 2: SET Len1 = Length(STR1), Len2 = Length(STR2) Step 3: IF len1 != len2, then Write “Strings Are Not Equal” ELSE Repeat while I<Len1 IF STR1[I] == STR2[I] SET I = I + 1 ELSE Go to Step [END OF IF] [END OF LOOP] IF I = Len1, then SET SAME =1 Write “Strings are equal” [END OF IF] Step 4: IF SAME = 0, then IF STR1[I] > STR2[I], then Write “String1 is greater than String2” ELSE IF STR1[I] < STR2[I], then Write “String2 is greater than String1” [END OF IF] [END OF IF]
11.
© Oxford University
Press 2011. All rights reserved. REVERSING A STRING • If S1= “HELLO”, then reverse of S1 = “OLLEH”. To reverse a string we just need to swap the first character with the last, second character with the second last character, so on and so forth. ALGORITHM TO REVERSE A STRING Step1: [Initialize] SET I=0, J= Length(STR) Step 2: Repeat Step 3 and 4 while I< Length(STR) Step 3: SWAP( STR(I), STR(J)) Step 4: SET I = I + 1, J = J – 1 [END OF LOOP] Step 5: EXIT EXTRACTING A SUBSTRING FROM LEFT • In order to extract a substring from the main string we need to copy the content of the string starting from the first position to the nth position where n is the number of characters to be extracted. • For example, if S1 = “Hello World”, then Substr_Left(S1, 7) = Hello W ALGORITHM TO EXTRACT N CHARCTERS FROM RIGHT OF A STRING Step 1: [Initialize] SET I=0, J = Length(STR) – N + 1 Step 2: Repeat Step 3 while STR[J] != ‘0’ Step 3: SET Substr[I] = STR[J] Step 4: SET I = I + 1, J = J + 1 [END OF LOOP] Step 5: SET Substr[I] =’0’
12.
© Oxford University
Press 2011. All rights reserved. EXTRACTING A SUBSTRING FROM RIGHT OF THE STRING • In order to extract a substring from the right side of the main string we need to first calculate the position. For example, if S1 = “Hello World” and we have to copy 7 characters starting from the right, then we have to actually start extracting characters from the 5th position. This is calculated by, total number of characters – n + 1. • For example, if S1 = “Hello World”, then Substr_Right(S1, 7) = o World ALGORITHM TO EXTRACT N CHARCTERS FROM RIGHT OF A STRING Step 1: [Initialize] SET I=0, J = Length(STR) – N + 1 Step 2: Repeat Step 3 while STR[J] != ‘0’ Step 3: SET Substr[I] = STR[J] Step 4: SET I = I + 1, J = J + 1 [END OF LOOP] Step 5: SET Substr[I] =’0’ Step 6: EXIT
13.
© Oxford University
Press 2011. All rights reserved. EXTRACTING A SUBSTRING FROM THE MIDDLE OF A STRING To extract a substring from a given string requires information about three things • the main string • the position of the first character of the substring in the given string • maximum number of characters/length of the substring For example, if we have a string- str[] = “Welcome to the world of programming”; then, SUBSTRING(str, 15, 5) = world Algorithm to extract substring from a given text Step 1: [INITIALIZE] Set I=M, J = 0 Step 2: Repeat steps 3 to 6 while str[I] != ‘0’ and N>=0 Step 3: SET substr[J] = str[I] Step 4: SET I = I + 1 Step 5: SET J = J + 1 Step 6: SET N = N – 1 [END of loop] Step 7: SET substr[J] = ‘0’ Step 8: EXIT
14.
© Oxford University
Press 2011. All rights reserved. INSERTION The insertion operation inserts a string S in the main text, T at the kth position. The general syntax of this operation is: INSERT(text, position, string). For ex, INSERT(“XYZXYZ”, 3, “AAA”) = “XYZAAAXYZ” Algorithm to insert a string in the main text Step 1: [INITIALIZE] SET I=0, J=0 and K=0 Step 2: Repeat steps 3 to 4 while text[I] != ‘0’ Step 3: IF I = pos, then Repeat while str[K] != ‘0’ new_str[j] = str[k] SET J=J+1 SET K = K+1 [END OF INNER LOOP] ELSE new_str[[J] = text[I] SET J = J+1 Step 4: SET I = I+1 [END OF OUTER LOOP] Step 5: SET new_str[J] = ‘0’ Step 6: EXIT
15.
© Oxford University
Press 2011. All rights reserved. INDEXING • Index operation returns the position in the string where the string pattern first occurs. For example, • INDEX(“Welcome to the world of programming”, “world”) = 15 • However, if the pattern does not exist in the string, the INDEX function returns 0. Algorithm to find the index of the first occurrence of a string within a given text Step 1: [Initialize] SET I=0 and MAX = LENGTH(text) – LENGTH(str) +1 Step 2: Repeat Steps 3 to 6 while I <= MAX Step 3: Repeat step 4 for K = 0 To Length(str) Step 4: IF str[K] != text[I + K], then GOTO step 6 [END of inner loop] Step 5: SET INDEX = I. Goto step 8 Step 6: SET I = I+1 [END OF OUTER LOOP] Step 7: SET INDEX = -1 Step 8: EXIT
16.
© Oxford University
Press 2011. All rights reserved. DELETION • The deletion operation deletes a substring from a given text. We write it as, DELETE(text, position, length) • For example, DELETE(“ABCDXXXABCD”, 5, 3) = “ABCDABCD” Algorithm to delete a substring from a text Step 1: [INITIALIZE] SET I=0 and J=0 Step 2: Repeat steps 3 to 6 while text[I] !=’0’ Step 3: IF I=M, then Repeat Step 4 while N>=0 SET I = I+1 SET N = N – 1 [END of inner loop] [END OF IF] Step 4: SET new_str[J] = text[I] Step 5: SET J= J + 1 Step 6: SET I = I + 1 [ END of outer loop] Step 7: SET new_str[J] = ‘0’ Step 8: EXIT
17.
© Oxford University
Press 2011. All rights reserved. REPLACEMENT • Replacement operation is used to replace the pattern P1 by another pattern P2. This is done by writing, REPLACE(text, pattern1, pattern2) • For example, (“AAABBBCCC”, “BBB”, “X”) = AAAXCCC • (“AAABBBCCC”, “X”, “YYY”)= AAABBBCC • Note in the second example there is no change as ‘X’ does not appear in the text. Algorithm to replace a pattern P1 with another pattern P2 in the given text TEXT Step 1: [INITIALIZE] SET Pos = INDEX(TEXT, P1) Step 2: SET TEXT = DELETE(TEXT, Pos, LENGTH(P1)) Step 3: INSERT(TEXT, Pos, P2) Step 4: EXIT
18.
© Oxford University
Press 2011. All rights reserved. ARRAY OF STRINGS • Now suppose that there are 20 students in a class and we need a string that stores names of all the 20 students. How can this be done? Here, we need a string of strings or an array of strings. Such an array of strings would store 20 individual strings. An array of string is declared as, char names[20][30]; • Here, the first index will specify how many strings are needed and the second index specifies the length of every individual string. So here, we allocate space for 20 names where each name can be maximum 30 characters long. • Let us see the memory representation of an array of strings. If we have an array declared as, char name[5][10] = {“Ram”, “Mohan”, “Shyam”, “Hari”, “Gopal”}; R A M ‘0 ’ M O H A N ‘0 ’ S H Y A M ‘0 ’ H A R I ‘0 ’ G O P A L ‘0 ’ Name[0] Name[1] Name[2] Name[3] Name[4]
19.
© Oxford University
Press 2011. All rights reserved. WRITE A PROGRAM TO READ AND PRINT THE NAMES OF N STUDENTS OF A CLASS • #include<stdio.h> • #include<conio.h> • main() • { • char names[5][10]; • int i, n; • clrscr(); • • printf(“n Enter the number of students : “); • scanf(“%d”, &n); • for(i=0;i<n;i++) • { • printf(“n Enter the name of %dth student : “, i+1); • gets(names[i]); • } • printf(“n Names of the students are : n”); • for(i=0;i<n;i++) • puts(names[i]); • getch(); • return 0; • }
20.
© Oxford University
Press 2011. All rights reserved. POINTERS AND STRINGS • Now, consider the following program that prints a text. • #include<stdio.h> • main() • { char str[] = “Oxford”; char *pstr = str; • printf(“n The string is : “); • while( *pstr != ‘0’) • { printf(“%c’, *pstr); • pstr++; • } • } • In this program we declare a character pointer *pstr to show the string on the screen. We then "point" the pointer pstr at str. Then we print each character of the string in the while loop. Instead of using the while loop, we could have straight away used the function puts(), like puts(pstr); • Consider here that the function prototype for puts() is: • int puts(const char *s); Here the "const" modifier is used to assure the user that the function will not modify the contents pointed to by the source pointer. Note that the address of the string is
21.
© Oxford University
Press 2011. All rights reserved. POINTERS AND STRINGS CONTD. • Consider another program which reads a string and then scans each character to count the number of upper and lower case characters entered • #include<stdio.h> • int main() • { char str[100], *pstr; • int upper = 0, lower = 0; • printf(“n Enter the string : “); • gets(str); • pstr = str; • while( *pstr != ‘0’) • { if(*pstr >= ‘A’ && *pstr <= ‘Z’) • upper++; • else if(*pstr >= ‘a’ && *pstr <= ‘z’) • lower++; • pstr++; • } • printf(“n Total number of upper case characters = %d”, upper); • printf(“n Total number of lower case characters = %d”, lower); • }