Chapter 6 Strings-1
Chapter 6 Strings-1
• char str[]=“HELLO”;
0 1 2 3 4 5
H E L L O \0
• Compiler
• assigns string to character array
• Automatically appends a null character to the end of the string
• Therefore, the size should be equal to maximum number of characters in the string + 1
• The above declaration is illegal
• Ex:
char str[100];
scanf(“%s”,str) ( does not require ampersand before variable name)
• Pitfall
• Ex:
char str[100];
scanf(“%s”,str)
• Hello world
• Ex:
char str[100];
gets(str);
• Ex:
printf(“%s”,str)
•
Using putchar()
• Defines set of characters which may be read and assigned to the corresponding string
• Defined by placing the characters inside square brackets [], prefixed with a %
• scanf()
Variable-length string
Variable-length string
• String length
• Converting characters of a string into upper case
• Converting characters of a string into lower case
• Concatenation two strings to form a new string
• Appending a string to another string
• Comparing two strings
• Reverse a string
• Searching a substring
• Extracting substring from left
• Extracting substring from right
• Extracting substring from middle
• Inserting a string in another string
• Deleting a substring
Operations on Strings
#include<stdio.h>
int main()
{
char str[100];
int i;
printf("Enter the string\n");
gets(str);
for(i=0;str[i]!='\0';i++);
printf("\n The length of the String %s is %d",str,i);
}
Enter the string
SASTRA
0 1 2 3 i=4 5 6
S A S T R A \0
0 1 2 3 4 i=5 6
S A S T R A \0
0 1 2 i=3 4 5 i=6
S A S T R A \0
Converting Characters of a String into uppercase
#include<stdio.h>
int main()
{
char str[100],upper[100];
int i;
printf("Enter the string\n");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='a'&&str[i]<='z')
{
upper[i]=str[i]-32;
}
else
{
upper[i]=str[i];
} Enter the string
} Sastra
upper[i]=‘\0’;
The Uppercase conversion is SASTRA
printf("\n The Uppercase conversion is %s",upper);
Converting Characters of a String into uppercase
str upper
i=0 1 2 3 4 5 6 i=0 1 2 3 4 5 6
S a s t r a \0 S a s t r a \0
0 i=1 2 3 4 5 6 0 i=1 2 3 4 5 6
S a s t r a \0 S A s t r a \0
0 1 i=2 3 4 5 6 0 1 i=2 3 4 5 6
S a s t r a \0 S a S t r a \0
0 1 2 i=3 4 5 6 0 1 2 i=3 4 5 6
S a s t r a \0 S a s T r a \0
0 1 2 3 i=4 5 6 0 1 2 3 i=4 5 6
S a s t r a \0 S a s t R a \0
0 1 2 3 4 i=5 6 0 1 2 3 4 i=5 6
S a s t r a \0 S a s t r A \0
Converting Characters of a String into lowercase
#include<stdio.h>
int main()
{
char str[100],lower[100];
int i;
printf("Enter the string\n");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
lower[i]=str[i]+32;
}
else
{
lower[i]=str[i];
}
} Enter the string
lower[i]='\0'; THANJAVUR
printf("\n The lowercase conversion is %s",lower);
The lowercase conversion is thanjavur
}
Converting Characters of a String into lowercase
str upper
i=0 1 2 3 4 5 6 i=0 1 2 3 4 5 6
S a s t r a \0 S a s t r a \0
0 i=1 2 3 4 5 6 0 i=1 2 3 4 5 6
S a s t r a \0 S A s t r a \0
0 1 i=2 3 4 5 6 0 1 i=2 3 4 5 6
S a s t r a \0 S A S t r a \0
0 1 2 i=3 4 5 6 0 1 2 i=3 4 5 6
S a s t r a \0 S A S T r a \0
0 1 2 3 i=4 5 6 0 1 2 3 i=4 5 6
S a s t r a \0 S A S T R a \0
0 1 2 3 4 i=5 6 0 1 2 3 4 i=5 6
S a s t r a \0 S A S T R A \0
Concatenating two strings into a third string
#include<stdio.h>
int main()
{
char str1[100],str2[100],str3[200];
int i,j;
printf("Enter string1\n");
gets(str1);
printf("Enter string2\n");
gets(str2);
for(i=0;str1[i]!='\0';i++)
{str3[i]=str1[i]; }
for(j=0;str2[j]!='\0';i++,j++)
{str3[i]=str2[j];} Enter string1
str3[i]='\0'; SASTRA
Enter string2
printf("\n Concatenated string is %s",str3);
University
}
Concatenated string is SASTRA University
Appending a String to another string
#include<stdio.h>
int main()
{
char str1[100],str2[100];
int i,j;
printf("Enter string1\n");
gets(str1);
printf("Enter string2\n");
gets(str2);
for(i=0;str1[i]!='\0';i++);
for(j=0;str2[j]!='\0';i++,j++)
{
str1[i]=str2[j]; Enter string1
} SASTRA
Enter string2
str1[i]='\0'; University
printf("\n Appended string is %s",str1); Appended string is SASTRA University
}
String Comparison
#include<stdio.h> if(strlen(str1)!=strlen(str2))
#include<string.h> {printf("\nStrings are Not Equal");}
int main() else
{ {
char str1[100],str2[100]; for(i=0;str1[i]!='\0';i++)
int i,j; {
printf("Enter string1\n"); if(str1[i]==str2[i])
gets(str1); continue;
printf("Enter string2\n"); }
gets(str2); if(i==strlen(str2))
printf("\nStrings are Equal");
else
printf("\nStrings are Not Equal");
Enter string1 }
Mani
Enter string2 }
Mani