HANDLING OF CHARACTER STRINGS
INTRODUCTION • A string is an array of characters • Any group of characters defined between double quotation marks is a constant string – EXAMPLE: “Man is obviously made to think.” • To include a double quote in the string to be printed, use a back slash. – EXAMPLE: printf(“Well Done !”); – OUTPUT: Well Done! – EXAMPLE: printf(“”Well Done!””); – OUTPUT: “Well Done!”
INTRODUCTION • Common operations performed on strings are: – Reading and writing strings – Combining strings together – Copying one string to another – Comparing strings for equality – Extracting a portion of a string
DECLARING AND INITIALIZING STRING VARAIBLES • A string variable is any valid C variable name and is always declared as an array – SYNTAX: char string_name[size]; • The size determines the number of characters in the string-name – EXAMPLE: char city[10]; • When the compiler assigns a character string to an character array, it automatically supplies a null character (‘0’) at the end of the string • The size should be equal to the maximum number of characters in the string plus one
DECLARING AND INITIALIZING STRING VARAIBLES • Character arrays may be initialized when they are declared char city[9] = “NEW YORK”; char city[9] = (‘N’,’E’,’W’,’ ‘,’Y’,’O’,’R’,’K’,’0’); • When we initialize a character by listing its elements, we must supply the null terminator • Can initialize a character array without specifying the number of elements.
DECLARING AND INITIALIZING STRING VARAIBLES • The size of the array will be determined automatically, based on the number of elements initialized. char string[ ] = {'G','O','O','D','0'}; • Can also declare the size much larger than the string size. char str[10] = “GOOD”; • Following will result in a compile time error. char str[3] = “GOOD”;
DECLARING AND INITIALIZING STRING VARIABLES • We cannot separate the initialization from declaration – char str[5]; – str = “GOOD”; • Following is not allowed – char s1[4]=”abc”; – char s2[4]; – s2 = s1; • The array name cannot be used as the left operand of an assignment operator
READING STRING FROM TERMINAL • Reading words – The input function scanf can be used with %s format specification to read in a string of character char address[15]; scanf(“%s”, address); – The problem with the scanf function is that it terminates its input on the first white space it finds – A white space include blanks, tabs, carriage returns, form feeds and new lines INPUT: NEW YORK – Only the string “NEW” will be read into the array address – In the case of character arrays, the ampersand (&) is not required before the variable name – The scanf function automatically terminates the string with a null character
READING STRING FROM TERMINAL • C supports a format specification known as the edit set conversion code %[..] that can be used to read a line containing a variety of characters, including whitespaces. – char line[80]; – scanf(“%[^n]”,line); – printf(“%s”,line); • Will read a line of input from the keyboard and display the same on the screen.
READING STRING FROM TERMINAL • Reading a Line of Text – We have used getchar function to read a single character from the terminal – This getchar function is used repeatedly to read successive single characters from the input and place them into a character array – Thus an entire line of text can be read and stored in an array – The reading is terminated when the newline character (‘n’) is entered and the null character is then inserted at the end of the string
PROGRAM #include <stdio.h> main() { char line[100], character; int c; c = 0; printf("Enter Text:n"); do { character = getchar(); line[c] = character; c++; } while(character != 'n'); c = c-1; line[c] = '0'; printf("n%sn",line); }
READING A LINE OF TEXT • For reading string of text containing whitespaces is to use the library function gets available in the <stdio.h> gets(str) • It reads characters into str from the keyboard until a new-line character is encountered and then appends a null character to the string. char line[80]; gets(line) printf(“%s”,line); • The last two statements may be combined as: printf(“%s”,gets(line));
READING A LINE OF TEXT • Does not check array-bounds, so do not input more characters, it may cause problems • C does not provide operators that work on strings directly. • We cannot assign one string to another directly. string2 = “ABC” string1 = string2; • Are not valid. • To copy the characters in string2 into sting1, we may do so on a character-by-character basis.
PROGRAM #include<stdio.h> main() { char string1[30], string2[30]; int i; printf("Enter a stringn"); scanf("%s",string2); for(i=0;string2[i]!='0';i++) string1[i]=string2[i]; string1[i] = '0'; printf("n"); printf("%sn",string1); printf("Number of characters = %dn",i); }
WRITING STRINGS TO SCREEN • The printf function with %s format is used to print strings to the screen • The format %s can be used to display an array of characters that is terminated by the null character printf(“%s”, name); • This display the entire content of the array name
USING PUTCHAR ANS PUTS • C supports putchar to output the values of character variables. char ch = 'A'; putchar(ch); • This statement is equivalent to printf(“%c”,ch); • Can use this function repeatedly to output string of characters stored in an array using a loop. char name[6] = “PARIS”; for(i=0;i<5;i++) putchar(name[i]); putchar(“n”);
USING PUTCHAR ANS PUTS • To print the string values is to use the function puts declared in the header file <stdio.h> puts(str); • str is a string variable containing a string value. • This printf the value of the string variable str and then moves the cursor to the beginning of the next line on the screen. char line[80]; gets(line); puts(line); • Reads a line of text from the keyboard and display it on the screen.
ARITHMETIC OPERATIONS ON CHARACTERS • C allows to manipulate characters the same way we do with the numbers • Whenever a character constant or character variable is used in an expression, it is automatically converted into an integer value by the system x = ‘a’; printf(“%dn”,x); OUTPUT: 97 EXAMPLE: x = ‘z’ – 1; • The value of z is 122 and the above statement assign 121 to the variable x
ARITHMETIC OPERATIONS ON CHARACTERS • Can use character constants in relational expressions EXAMPLE: ch >= ‘A’ && ch <= ‘Z’ • Test whether the character contained in the variable ch is an upper-case letter • Can convert a character digit to its equivalent integer using x = character – ‘0’; • Where x is defined as an integer variable and character contains the character digit • The character containing the digit ‘7’ then x = ASCII value of ‘7’ - ASCII value of ‘0’ = 55 – 48 = 7
ARITHMETIC OPERATIONS ON CHARACTERS • The C library supports a function that converts a string of digits into their integer values • The function takes the form X = atoi(string) • EXAMPLE: number = “1998”; Year = atoi(number);
PUTTING STRINGS TOGETHER • We cannot assign the string to another directly • We cannot join two strings together by the simple arithmetic addition string3 = strin1 + string2; string2 = string1 + “hello”; • The process of combining two strings together is called concatenation
COMPARISON OF TWO STRINGS • C does not permit the comparison of two strings directly if(name1 == name2) if(name == “ABC”) • are not permitted • It is therefore necessary to compare the two strings to be tested, character by character • The comparison is done until a mismatch or one of the strings terminates into a null character, whichever occur first
COMPARISON OF TWO STRINGS i=0; while(str1[i]==str2[i] && str1[i] != '0' && str2 != '0') i = i+1; if(str1[i] == '0' && str2 == '0') printf("strings are equal"); else printf("strings are not equal");
Lengths of strings /* Lengths of strings */ #include <stdio.h> main() { char str1[] = "To be or not to be"; char str2[] = ",that is the question"; int count = 0; /* Stores the string length */ while (str1[count] != '0') /* Increment count till we reach the string */ count++; /* terminating character. */ printf("nThe length of the string1 is", count); count = 0; /* Reset to zero for next string */ while (str2[count] != '0') /* Count characters in second string */ count++; printf("nThe length of the string2 is", count); } OUTPUT: The length of the string1 is 18 The length of the string2 is 21
STRING-HANDLING FUNCTIONS • C library supports large number of string- handling functions • Some are
Strings There are several standard routines that work on string variables. Some of the string manipulation functions are, strcpy(string1, string2); - copy string2 into string1 strcat(string1, string2); - concatenate string2 onto the end of string1 strcmp(string1,string2); - 0 if string1 is equals to string2, < 0 if string1 is less than string2 >0 if string1 is greater than string2 strlen(string); - get the length of a string. strrev(string); - reverse the string and result is stored in same string.
strcat() FUNCTION • The strcat function joins two strings together – SYNTAX: strcat(string1, string2); • string1 and string2 are character array • string2 is appended to string1 • The null character at the end of the string1 is removed and string2 is placed from there • The string2 remains unchanged
Example #include <stdio.h> #include <string.h> int main () { char src[50], dest[50]; puts(“Enter a text1”); gets(src); puts(“nEnter a text2”); gets(dest); strcat(dest, src); printf("Final destination string : |%s|", dest); }
C program to concatenate two strings without using strcat() #include<stdio.h> void main(void) { char str1[25],str2[25]; int i=0,j=0; printf("nEnter First String:"); gets(str1); printf("nEnter Second String:"); gets(str2); while(str1[i]!='0') i++; while(str2[j]!='0') { str1[i]=str2[j]; j++; i++; } str1[i]='0'; printf("nConcatenated String is %s",str1); }
strcmp() FUNCTION • Compares two strings identified by the arguments and has a value 0 if they are equal • If they are not, it has the numeric difference between the first non-matching characters in the strings strcmp(string1, string2); – EXAMPLE: strcmp(nam1, name2); strcmp(name1, “John”); strcmp(“Rom”, “Ram”); strcmp(“their”, ”there”); • The above statement will return the value of -9 which is numeric difference between ASCII “i” and ASCII “r” is -9 • If the value is negative the string1 is alphabetically above string2
#include <string.h> #include<conio.h> void main(void) { char str1[25],str2[25]; int dif,i=0; clrscr(); printf("nEnter the first String:"); gets(str1); printf("nEnter the secondString;"); gets(str2); while(str1[i]!='0'||str2[i]!='0') { dif=(str1[i]-str2[i]); if(dif!=0) break; i++; } if(dif>0) printf("%s comes after %s",str1,str2); else { if(dif<0) printf("%s comes after %s",str2,str1); else printf("both the strings are same"); } }
C program to compare two strings using strcmp #include <stdio.h> #include <string.h> int main() { char a[100], b[100]; printf("Enter the first stringn"); gets(a); printf("Enter the second stringn"); gets(b); if( strcmp(a,b) == 0 ) printf("Entered strings are equal.n"); else printf("Entered strings are not equal.n"); }
strcpy() FUNCITON • Works almost like a string-assignment operator – SYNTAX: strcpy(string1, string2); • Assigns the content of string2 to string1 – EXAMPLE: strcpy(city, “DELHI”); • Assign the string “DELHI” to the string variable city strcpy(city1, city2); • Assigns the contents of the string variable city2 to the string variable city1
Copy String Manually without using strcpy() #include <stdio.h> int main() { char s1[100], s2[100], i; printf("Enter string s1: "); scanf("%s",s1); for(i=0; s1[i]!='0'; ++i) { s2[i]=s1[i]; } s2[i]='0'; printf("String s2: %s",s2); }
strlen() FUNCTION • This function counts and return the number of characters in a string – SYNTAX: n = strlen(string); • Where n is the integer variable which receives the value of the length of the string • The counting ends at the first null character – EXAMPLE: Ch = “NEW YORK”; n = strlen(ch); printf(String Length = %dn”, n); – OUTPUT: String Length = 8
TABLE OF STRINGS • We use lists of character strings, such as – List of name of students in a class – List of name of employees in an organization – List of places, etc • These list can be treated as a table of strings and a two dimensional array can be used to store the entire list – EXAMPLE: student[30][15]; • is an character array which can store a list of 30 names, each of length not more than 15 characters char city[ ][ ] = { “chandigarh”, “Madrad”, Ahmedab” };
ARRAYS OF STRINGS • An array of strings is a two-dimensional array. The row index refers to a particular string, while the column index refers to a particular character within a string. Definition char identifier[NO_OF_STRINGS][MAX_NO_OF_BYTES_PER_STRING]; Example char name[5][31];
Initialization char identifier[NO_OF_STRINGS][MAX_NO_OF_BYTES_PER_STRING] = { "initializer 1", "initializer 2", ... }; For example, char name[5][31] = {“Logesh", "Jean", “ganesh", “moon", “kumaran”};
Input and Output Input To accept input for a list of 5 names, we write char name[5][31]; for (i = 0; i < 5; i++) scanf(" %[^n]s", name[i]); The space in the format string skips leading whitespace before accepting the string. Output char name[5][31] = {"Harry", "Jean", "Jessica", "Irene", "Jim"}; printf("%s", name[2]);
Sorting of string #include<stdio.h> int main(){ int i,j,n; char str[20][20],temp[20]; puts("Enter the no. of string to be sorted"); scanf("%d",&n); for(i=0;i<=n;i++) gets(str[i]); for(i=0;i<=n;i++) { for(j=i+1;j<=n;j++){ { if(strcmp(str[i],str[j])>0) { strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } } printf("The sorted stringn"); for(i=0;i<=n;i++) puts(str[i]); }
Search a name in a give list #include<stdio.h> #include<string.h> int main() { char name[5][10],found[10]; int j,i,flag=0; printf("Enter a name :"); for(i=0;i<5;i++) scanf("%s",name[i]); printf("enter a searching stringn"); scanf("%s",found); for(i=0;i<5;i++) { if(strcmp(name[i],found)==0) { flag=1; break; } } if(flag==1) printf("String foundn"); else printf("nString not found"); }

Handling of character strings C programming

  • 1.
  • 2.
    INTRODUCTION • A stringis an array of characters • Any group of characters defined between double quotation marks is a constant string – EXAMPLE: “Man is obviously made to think.” • To include a double quote in the string to be printed, use a back slash. – EXAMPLE: printf(“Well Done !”); – OUTPUT: Well Done! – EXAMPLE: printf(“”Well Done!””); – OUTPUT: “Well Done!”
  • 3.
    INTRODUCTION • Common operationsperformed on strings are: – Reading and writing strings – Combining strings together – Copying one string to another – Comparing strings for equality – Extracting a portion of a string
  • 4.
    DECLARING AND INITIALIZING STRINGVARAIBLES • A string variable is any valid C variable name and is always declared as an array – SYNTAX: char string_name[size]; • The size determines the number of characters in the string-name – EXAMPLE: char city[10]; • When the compiler assigns a character string to an character array, it automatically supplies a null character (‘0’) at the end of the string • The size should be equal to the maximum number of characters in the string plus one
  • 5.
    DECLARING AND INITIALIZING STRINGVARAIBLES • Character arrays may be initialized when they are declared char city[9] = “NEW YORK”; char city[9] = (‘N’,’E’,’W’,’ ‘,’Y’,’O’,’R’,’K’,’0’); • When we initialize a character by listing its elements, we must supply the null terminator • Can initialize a character array without specifying the number of elements.
  • 6.
    DECLARING AND INITIALIZING STRINGVARAIBLES • The size of the array will be determined automatically, based on the number of elements initialized. char string[ ] = {'G','O','O','D','0'}; • Can also declare the size much larger than the string size. char str[10] = “GOOD”; • Following will result in a compile time error. char str[3] = “GOOD”;
  • 7.
    DECLARING AND INITIALIZING STRINGVARIABLES • We cannot separate the initialization from declaration – char str[5]; – str = “GOOD”; • Following is not allowed – char s1[4]=”abc”; – char s2[4]; – s2 = s1; • The array name cannot be used as the left operand of an assignment operator
  • 8.
    READING STRING FROMTERMINAL • Reading words – The input function scanf can be used with %s format specification to read in a string of character char address[15]; scanf(“%s”, address); – The problem with the scanf function is that it terminates its input on the first white space it finds – A white space include blanks, tabs, carriage returns, form feeds and new lines INPUT: NEW YORK – Only the string “NEW” will be read into the array address – In the case of character arrays, the ampersand (&) is not required before the variable name – The scanf function automatically terminates the string with a null character
  • 9.
    READING STRING FROMTERMINAL • C supports a format specification known as the edit set conversion code %[..] that can be used to read a line containing a variety of characters, including whitespaces. – char line[80]; – scanf(“%[^n]”,line); – printf(“%s”,line); • Will read a line of input from the keyboard and display the same on the screen.
  • 10.
    READING STRING FROMTERMINAL • Reading a Line of Text – We have used getchar function to read a single character from the terminal – This getchar function is used repeatedly to read successive single characters from the input and place them into a character array – Thus an entire line of text can be read and stored in an array – The reading is terminated when the newline character (‘n’) is entered and the null character is then inserted at the end of the string
  • 11.
    PROGRAM #include <stdio.h> main() { char line[100],character; int c; c = 0; printf("Enter Text:n"); do { character = getchar(); line[c] = character; c++; } while(character != 'n'); c = c-1; line[c] = '0'; printf("n%sn",line); }
  • 12.
    READING A LINEOF TEXT • For reading string of text containing whitespaces is to use the library function gets available in the <stdio.h> gets(str) • It reads characters into str from the keyboard until a new-line character is encountered and then appends a null character to the string. char line[80]; gets(line) printf(“%s”,line); • The last two statements may be combined as: printf(“%s”,gets(line));
  • 13.
    READING A LINEOF TEXT • Does not check array-bounds, so do not input more characters, it may cause problems • C does not provide operators that work on strings directly. • We cannot assign one string to another directly. string2 = “ABC” string1 = string2; • Are not valid. • To copy the characters in string2 into sting1, we may do so on a character-by-character basis.
  • 14.
    PROGRAM #include<stdio.h> main() { char string1[30], string2[30]; inti; printf("Enter a stringn"); scanf("%s",string2); for(i=0;string2[i]!='0';i++) string1[i]=string2[i]; string1[i] = '0'; printf("n"); printf("%sn",string1); printf("Number of characters = %dn",i); }
  • 15.
    WRITING STRINGS TOSCREEN • The printf function with %s format is used to print strings to the screen • The format %s can be used to display an array of characters that is terminated by the null character printf(“%s”, name); • This display the entire content of the array name
  • 16.
    USING PUTCHAR ANSPUTS • C supports putchar to output the values of character variables. char ch = 'A'; putchar(ch); • This statement is equivalent to printf(“%c”,ch); • Can use this function repeatedly to output string of characters stored in an array using a loop. char name[6] = “PARIS”; for(i=0;i<5;i++) putchar(name[i]); putchar(“n”);
  • 17.
    USING PUTCHAR ANSPUTS • To print the string values is to use the function puts declared in the header file <stdio.h> puts(str); • str is a string variable containing a string value. • This printf the value of the string variable str and then moves the cursor to the beginning of the next line on the screen. char line[80]; gets(line); puts(line); • Reads a line of text from the keyboard and display it on the screen.
  • 18.
    ARITHMETIC OPERATIONS ON CHARACTERS •C allows to manipulate characters the same way we do with the numbers • Whenever a character constant or character variable is used in an expression, it is automatically converted into an integer value by the system x = ‘a’; printf(“%dn”,x); OUTPUT: 97 EXAMPLE: x = ‘z’ – 1; • The value of z is 122 and the above statement assign 121 to the variable x
  • 19.
    ARITHMETIC OPERATIONS ON CHARACTERS •Can use character constants in relational expressions EXAMPLE: ch >= ‘A’ && ch <= ‘Z’ • Test whether the character contained in the variable ch is an upper-case letter • Can convert a character digit to its equivalent integer using x = character – ‘0’; • Where x is defined as an integer variable and character contains the character digit • The character containing the digit ‘7’ then x = ASCII value of ‘7’ - ASCII value of ‘0’ = 55 – 48 = 7
  • 20.
    ARITHMETIC OPERATIONS ON CHARACTERS •The C library supports a function that converts a string of digits into their integer values • The function takes the form X = atoi(string) • EXAMPLE: number = “1998”; Year = atoi(number);
  • 21.
    PUTTING STRINGS TOGETHER •We cannot assign the string to another directly • We cannot join two strings together by the simple arithmetic addition string3 = strin1 + string2; string2 = string1 + “hello”; • The process of combining two strings together is called concatenation
  • 22.
    COMPARISON OF TWOSTRINGS • C does not permit the comparison of two strings directly if(name1 == name2) if(name == “ABC”) • are not permitted • It is therefore necessary to compare the two strings to be tested, character by character • The comparison is done until a mismatch or one of the strings terminates into a null character, whichever occur first
  • 23.
    COMPARISON OF TWOSTRINGS i=0; while(str1[i]==str2[i] && str1[i] != '0' && str2 != '0') i = i+1; if(str1[i] == '0' && str2 == '0') printf("strings are equal"); else printf("strings are not equal");
  • 24.
    Lengths of strings /*Lengths of strings */ #include <stdio.h> main() { char str1[] = "To be or not to be"; char str2[] = ",that is the question"; int count = 0; /* Stores the string length */ while (str1[count] != '0') /* Increment count till we reach the string */ count++; /* terminating character. */ printf("nThe length of the string1 is", count); count = 0; /* Reset to zero for next string */ while (str2[count] != '0') /* Count characters in second string */ count++; printf("nThe length of the string2 is", count); } OUTPUT: The length of the string1 is 18 The length of the string2 is 21
  • 25.
    STRING-HANDLING FUNCTIONS • Clibrary supports large number of string- handling functions • Some are
  • 26.
    Strings There are severalstandard routines that work on string variables. Some of the string manipulation functions are, strcpy(string1, string2); - copy string2 into string1 strcat(string1, string2); - concatenate string2 onto the end of string1 strcmp(string1,string2); - 0 if string1 is equals to string2, < 0 if string1 is less than string2 >0 if string1 is greater than string2 strlen(string); - get the length of a string. strrev(string); - reverse the string and result is stored in same string.
  • 27.
    strcat() FUNCTION • Thestrcat function joins two strings together – SYNTAX: strcat(string1, string2); • string1 and string2 are character array • string2 is appended to string1 • The null character at the end of the string1 is removed and string2 is placed from there • The string2 remains unchanged
  • 28.
    Example #include <stdio.h> #include <string.h> intmain () { char src[50], dest[50]; puts(“Enter a text1”); gets(src); puts(“nEnter a text2”); gets(dest); strcat(dest, src); printf("Final destination string : |%s|", dest); }
  • 29.
    C program toconcatenate two strings without using strcat() #include<stdio.h> void main(void) { char str1[25],str2[25]; int i=0,j=0; printf("nEnter First String:"); gets(str1); printf("nEnter Second String:"); gets(str2); while(str1[i]!='0') i++; while(str2[j]!='0') { str1[i]=str2[j]; j++; i++; } str1[i]='0'; printf("nConcatenated String is %s",str1); }
  • 30.
    strcmp() FUNCTION • Comparestwo strings identified by the arguments and has a value 0 if they are equal • If they are not, it has the numeric difference between the first non-matching characters in the strings strcmp(string1, string2); – EXAMPLE: strcmp(nam1, name2); strcmp(name1, “John”); strcmp(“Rom”, “Ram”); strcmp(“their”, ”there”); • The above statement will return the value of -9 which is numeric difference between ASCII “i” and ASCII “r” is -9 • If the value is negative the string1 is alphabetically above string2
  • 31.
    #include <string.h> #include<conio.h> void main(void) { charstr1[25],str2[25]; int dif,i=0; clrscr(); printf("nEnter the first String:"); gets(str1); printf("nEnter the secondString;"); gets(str2); while(str1[i]!='0'||str2[i]!='0') { dif=(str1[i]-str2[i]); if(dif!=0) break; i++; } if(dif>0) printf("%s comes after %s",str1,str2); else { if(dif<0) printf("%s comes after %s",str2,str1); else printf("both the strings are same"); } }
  • 32.
    C program tocompare two strings using strcmp #include <stdio.h> #include <string.h> int main() { char a[100], b[100]; printf("Enter the first stringn"); gets(a); printf("Enter the second stringn"); gets(b); if( strcmp(a,b) == 0 ) printf("Entered strings are equal.n"); else printf("Entered strings are not equal.n"); }
  • 33.
    strcpy() FUNCITON • Worksalmost like a string-assignment operator – SYNTAX: strcpy(string1, string2); • Assigns the content of string2 to string1 – EXAMPLE: strcpy(city, “DELHI”); • Assign the string “DELHI” to the string variable city strcpy(city1, city2); • Assigns the contents of the string variable city2 to the string variable city1
  • 34.
    Copy String Manuallywithout using strcpy() #include <stdio.h> int main() { char s1[100], s2[100], i; printf("Enter string s1: "); scanf("%s",s1); for(i=0; s1[i]!='0'; ++i) { s2[i]=s1[i]; } s2[i]='0'; printf("String s2: %s",s2); }
  • 35.
    strlen() FUNCTION • Thisfunction counts and return the number of characters in a string – SYNTAX: n = strlen(string); • Where n is the integer variable which receives the value of the length of the string • The counting ends at the first null character – EXAMPLE: Ch = “NEW YORK”; n = strlen(ch); printf(String Length = %dn”, n); – OUTPUT: String Length = 8
  • 36.
    TABLE OF STRINGS •We use lists of character strings, such as – List of name of students in a class – List of name of employees in an organization – List of places, etc • These list can be treated as a table of strings and a two dimensional array can be used to store the entire list – EXAMPLE: student[30][15]; • is an character array which can store a list of 30 names, each of length not more than 15 characters char city[ ][ ] = { “chandigarh”, “Madrad”, Ahmedab” };
  • 37.
    ARRAYS OF STRINGS •An array of strings is a two-dimensional array. The row index refers to a particular string, while the column index refers to a particular character within a string. Definition char identifier[NO_OF_STRINGS][MAX_NO_OF_BYTES_PER_STRING]; Example char name[5][31];
  • 38.
    Initialization char identifier[NO_OF_STRINGS][MAX_NO_OF_BYTES_PER_STRING] = {"initializer 1", "initializer 2", ... }; For example, char name[5][31] = {“Logesh", "Jean", “ganesh", “moon", “kumaran”};
  • 39.
    Input and Output Input Toaccept input for a list of 5 names, we write char name[5][31]; for (i = 0; i < 5; i++) scanf(" %[^n]s", name[i]); The space in the format string skips leading whitespace before accepting the string. Output char name[5][31] = {"Harry", "Jean", "Jessica", "Irene", "Jim"}; printf("%s", name[2]);
  • 40.
    Sorting of string #include<stdio.h> intmain(){ int i,j,n; char str[20][20],temp[20]; puts("Enter the no. of string to be sorted"); scanf("%d",&n); for(i=0;i<=n;i++) gets(str[i]); for(i=0;i<=n;i++) { for(j=i+1;j<=n;j++){ { if(strcmp(str[i],str[j])>0) { strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } } printf("The sorted stringn"); for(i=0;i<=n;i++) puts(str[i]); }
  • 41.
    Search a namein a give list #include<stdio.h> #include<string.h> int main() { char name[5][10],found[10]; int j,i,flag=0; printf("Enter a name :"); for(i=0;i<5;i++) scanf("%s",name[i]); printf("enter a searching stringn"); scanf("%s",found); for(i=0;i<5;i++) { if(strcmp(name[i],found)==0) { flag=1; break; } } if(flag==1) printf("String foundn"); else printf("nString not found"); }