String Operations in C Program
Problem Statement
Source Code to Implement String Operations in C Program or String Operation in C and C++ Language . Operations on String are as Follows :
- Input Operations – This operation will ask for input from user.
- Display Operations – This will display user the output.
- Palindrome Operations – this function will check the entered string for palindrome.
- Copy String – This option will make a copy of string.
- Compare Operations on String – This option will compare the two entered strings according to requirement.
- Reverse Strings – This function will reverse the string and then print to the screen.
- Concatenate Operations on String – This function will concatenate two strings and then print the final string.
- Finding Sub string Operations on String
Operations implementation by two methods
- Using Pointers
- Without Pointers
String Operations in C Program Code
1 2 3 |
#include <br/> #include <br/> void withp(char []); <br/> void withoutp(char []); <br/> void in (char []); <br/> void out(char []); <br/> void palindrome(char []); <br/> void reverse(char []); <br/> void substring(char []); <br/> void compare(char []); <br/> void concat (char []); <br/> int length (char []); <br/> void copy(char []); <br/> void input(char *); <br/> void display(char *); <br/> void palindrome1(char *); <br/> void reverse1(char *); <br/> void compare1(char *); <br/> void concat1 (char *); <br/> void substring1 (char *); <br/> int length1 (char *); <br/> void copy1(char *); <br/> void main() <br/> { <br/> int ch; <br/> char str[50]; <br/> str[0]=NULL; <br/> clrscr(); <br/> do <br/> { <br/> clrscr(); <br/> printf("\n\n\n\t\t-------: MAIN MENU :--------"); <br/> printf("\n\n\n\t1\tUSING POINTERS \n "); <br/> printf("\n\t2\tWITHOUT USING POINTERS\n"); <br/> printf("\n\t3\tEXIT\n\n"); <br/> printf("\n\tENTER UR CHOICE\t: "); <br/> scanf("%d",&ch); <br/> switch(ch) <br/> { <br/> case 1: withp(str); <br/> break; <br/> case 2:withoutp(str); <br/> break; <br/> case 3: break; <br/> default: <br/> printf("\n\n\t!!!!!! INVALID CHOICE !!!!!!!"); <br/> getch(); <br/> } <br/> }while(ch!=3); <br/> getch(); <br/> } //END OF MAIN <br/> /********************************************************************* <br/> WITH POINTERS FUNCTOIN <br/> ************************************************************************/ <br/> void withp(char str[]) <br/> { <br/> int ch,s1=0; <br/> do <br/> { <br/> clrscr(); <br/> printf("\n\n\t\t------: USING POINTER MENU :------\n\n"); <br/> printf("\n\n\t1\tINPUT"); <br/> printf("\n\n\t2\tDISPLAY"); <br/> printf("\n\n\t3\tLENGHT OF THE STRING"); <br/> printf("\n\n\t4\tPALINDROME"); <br/> printf("\n\n\t5\tCOPY THE STRING"); <br/> printf("\n\n\t6\tCOMPARE THE STRING "); <br/> printf("\n\n\t7\tREVERSE"); <br/> printf("\n\n\t8\tCONCATINATE THE STRING"); <br/> printf("\n\n\t9\tFIND THE SUBSTRING"); <br/> printf("\n\n\t10\tRETURN TO MAIN MENU"); <br/> printf("\n\n\n\tENTER UR CHOICE \t: "); <br/> scanf("%d",&ch); <br/> switch(ch) <br/> { <br/> case 1: <br/> input(str); <br/> break; <br/> case 2: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> display(str); <br/> getch(); <br/> break; <br/> case 3: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> s1=length1(str); <br/> printf("\n\n\tLENGTH OF THE STRING IS %d",s1); <br/> getch(); <br/> break; <br/> case 4: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> palindrome1(str); <br/> break; <br/> case 5: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> copy(str); <br/> break; <br/> case 6: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> compare1(str); <br/> break; <br/> case 7: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> reverse1(str); <br/> break; <br/> case 8: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> concat1(str); <br/> break; <br/> case 9: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> substring1(str); <br/> break; <br/> case 10: <br/> break; <br/> default: <br/> printf("\n\n\t!!!! INVALID CHOICE !!!!!"); <br/> getch(); <br/> } <br/> }while(ch!=10); <br/> } <br/> /***************************************************************** <br/> INPUT FUNCTION <br/> *******************************************************************/ <br/> void input(char *str) <br/> { <br/> int i=0; <br/> printf("\n\n\tENTER THE STRING\t"); <br/> do <br/> { <br/> flushall(); <br/> *(str+i++)=getche(); <br/> } while(*(str+i-1)!='\r'); <br/> *(str+i)=NULL; <br/> } <br/> /***************************************************************** <br/> DISPLAY FUNCTION <br/> *******************************************************************/ <br/> void display(char *str) <br/> { <br/> int i=0; <br/> printf("\n\n\t\t"); <br/> while(*(str+i)!='\r') <br/> { <br/> printf("%c",*(str+i++)); <br/> } <br/> getch(); <br/> } <br/> /***************************************************************** <br/> PALINDROME FUNCTION <br/> *******************************************************************/ <br/> void palindrome1(char *str) <br/> { <br/> int s,e,l=0; <br/> l=length1(str); <br/> for(s=0,e=l-1;s<e;s++,e--) <br=""> if(*(str+s)!=*(str+e)) <br/> break; <br/> if(s==e) <br/> printf("\n\n\t!!!!!!!! PALINDROME !!!!!!!!"); <br/> else <br/> printf("\n\n\t!!!!!!!! NOT PALINDROME !!!!!!!!"); <br/> getch(); <br/> } <br/> /******************************************* ********************** <br/> REVERSE FUNCTION <br/> *******************************************************************/ <br/> void reverse1(char *str) <br/> { <br/> int a,s,e,l=0; <br/> l=length1(str); <br/> for(s=0,e=l-1;s<e;s++,e--) <br=""> { <br/> a=*(str+s); <br/> *(str+s)=*(str+e); <br/> *(str+e)=a; <br/> } <br/> printf("\n\n\t!!!!!!!!!! STRING HAS BEEN REVERSED !!!!!!!!!"); <br/> printf("\n\n\tREVERSED STRING :-->> "); <br/> display(str); <br/> } <br/> /***************************************************************** <br/> CONCATINATION FUNCTION <br/> *******************************************************************/ <br/> void concat1 (char *str) <br/> { <br/> int i=0,l1; <br/> char *s1; <br/> input(s1); <br/> l1=length1(str); <br/> while(*(s1+i)!='\r') <br/> *(str+i+l1)=*(s1+i++); <br/> *(str+i+l1)='\r'; <br/> *(str+i+l1+1)=NULL; <br/> printf("\n\n\tCONCATINATED STRING :-->> "); <br/> display(str); <br/> } <br/> /***************************************************************** <br/> LENGTH FUNCTION <br/> *******************************************************************/ <br/> int length1(char *str) <br/> { <br/> int i; <br/> for(i=0;*(str+i)!=NULL;i++); <br/> return --i; <br/> } <br/> /***************************************************************** <br/> COMPARE FUNCTION <br/> *******************************************************************/ <br/> void compare1(char *st) <br/> { <br/> int i,j,l1=0,l2=0; <br/> char *s1; <br/> input(s1); <br/> l1=length1(st); <br/> l2=length1(s1); <br/> if(l1==l2) <br/> { <br/> for(i=0;i<l1;i++) <br=""> if(*(st+i)!=*(s1+i)) <br/> { <br/> if(*(st+i) > *(s1+i)) <br/> printf("\n\n\tFIRST STRING IS GREATER THAN THE SECOND "); <br/> else <br/> printf("\n\n\tSECOND STRING IS GREATER THAN THE FIRST "); <br/> break; <br/> } <br/> if(i==l2) <br/> printf("\n\n\tBOTH THE STRINGS R EQUAL"); <br/> } <br/> else <br/> { if(l1>l2) <br/> printf("\n\n\tFIRST STRING IS GREATER THAN THE SECOND "); <br/> else <br/> printf("\n\n\tSECOND STRING IS GREATER THAN THE FIRST "); <br/> } <br/> getch(); <br/> } <br/> /***************************************************************** <br/> COPY FUNCTION <br/> *******************************************************************/ <br/> void copy1(char *st) <br/> { <br/> int i,j; <br/> char *s1; <br/> input(s1); <br/> for(i=0;*(st+i)!=NULL;i++) <br/> *(s1+i) = *(st+i); <br/> *(s1+i)=NULL; <br/> printf("\tTHE STRING IS COPIED"); <br/> display(s1); <br/> getch(); <br/> } <br/> /***************************************************************** <br/> SUBSTRING FUNCTION <br/> *******************************************************************/ <br/> void substring1(char *st) <br/> { int j,i,m=0,l2=0; <br/> char *s1; <br/> input(s1); <br/> l2=length1(s1); <br/> for(i=0;*(st+i)!=NULL;i++) <br/> if(*(st+i)==*(s1)) <br/> { <br/> for(j=1;j<l2;j++) <br=""> if(*(st+i+j)!=*(s1+j)) <br/> break; <br/> if(j==l2) <br/> m++; <br/> } <br/> if(m>0) <br/> printf("\n\n\t\tTHE STRING YOU HAVE ENTERED IS PRESENT %d TIMES",m); <br/> else <br/> printf("\nTHE STRING YOU HAVE ENTERED IS NOT A SUBSTRING OF THE STRING\n"); <br/> getch(); <br/> } <br/> /******************************************************* <br/> WITHOUT POINTERS <br/> ********************************************************/ <br/> void withoutp(char str[]) <br/> { <br/> int ch,s1=0; <br/> clrscr(); <br/> do <br/> { <br/> clrscr(); <br/> printf("\n\n\t\t------: WITHOUT USING POINTER MENU :------\n\n"); <br/> printf("\n\n\t1\tINPUT"); <br/> printf("\n\n\t2\tDISPLAY"); <br/> printf("\n\n\t3\tLENGHT OF THE STRING"); <br/> printf("\n\n\t4\tPALINDROME"); <br/> printf("\n\n\t5\tCOPY THE STRING"); <br/> printf("\n\n\t6\tCOMPARE THE STRING "); <br/> printf("\n\n\t7\tREVERSE"); <br/> printf("\n\n\t8\tCONCATINATE THE STRING"); <br/> printf("\n\n\t9\tFIND THE SUBSTRING"); <br/> printf("\n\n\t10\tRETURN TO MAIN MENU"); <br/> printf("\n\n\n\tENTER UR CHOICE \t: "); <br/> scanf("%d",&ch); <br/> switch(ch) <br/> { <br/> case 1: <br/> in(str); <br/> break; <br/> case 2: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\t!!!!! ENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> printf("\n\n\tTHE STRING IS \n\n\t\t "); <br/> out(str); <br/> break; <br/> case 3: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\t!!!!!!! ENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> s1=length(str); <br/> printf("\n\n\tLENGTH OF THE STRING IS %d",s1); <br/> getch(); <br/> break; <br/> case 4: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\t!!!!!!!!! ENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> palindrome(str); <br/> break; <br/> case 5: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> copy(str); <br/> break; <br/> case 6: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> compare(str); <br/> break; <br/> case 7: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> reverse(str); <br/> break; <br/> case 8: <br/> if(s1==0) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> concat(str); <br/> break; <br/> case 9: <br/> if(str[0]==NULL) <br/> { <br/> printf("\n\n\tENTER THE STRING "); <br/> getch(); <br/> break; <br/> } <br/> substring(str); <br/> break; <br/> case 10: <br/> break; <br/> default: <br/> printf("\n\n\t!!!! INVALID CHOICE !!!!!"); <br/> getch(); <br/> } <br/> }while(ch!=10); <br/> } <br/> /***************************************************************** <br/> INPUT FUNCTION <br/> *******************************************************************/ <br/> void in(char st[]) <br/> { <br/> int i=0; <br/> printf("\n\n\tENTER THE STRING\t"); <br/> do <br/> { <br/> flushall(); <br/> st[i++]=getche(); <br/> } while(st[i-1]!='\r'); <br/> st[i]=NULL; <br/> } <br/> /***************************************************************** <br/> OUTPUT FUNCTION <br/> *******************************************************************/ <br/> void out(char st[]) <br/> { <br/> int i=0; <br/> printf("\n\n\t\t"); <br/> while(st[i]!=NULL) <br/> { <br/> printf("%c",st[i++]); <br/> } <br/> getch(); <br/> } <br/> /***************************************************************** <br/> PALINDROME FUNCTION <br/> *******************************************************************/ <br/> void palindrome (char st[]) <br/> { <br/> int s,e,l=0; <br/> l=length(st); <br/> for(s=0,e=l-1;s<e;s++,e--) <br=""> if(st[s]!=st[e]) <br/> break; <br/> if(s==e) <br/> printf("\n\n\t!!!!!!!! PALINDROME !!!!!!!!"); <br/> else <br/> printf("\n\n\t!!!!!!!! NOT PALINDROME !!!!!!!!"); <br/> getch(); <br/> } <br/> /***************************************************************** <br/> REVERSE FUNCTION <br/> *******************************************************************/ <br/> void reverse (char st[]) <br/> { <br/> int a,s,e,l=0; <br/> l=length(st); <br/> for(s=0,e=l-1;s<e;s++,e--) <br=""> { <br/> a=st[s]; <br/> st[s]=st[e]; <br/> st[e]=a; <br/> } <br/> printf("\n\n\t!!!!!!!!!! STRING HAS BEEN REVERSED !!!!!!!!!"); <br/> printf("\n\n\tREVERSED STRING :-->> "); <br/> out(st); <br/> } <br/> /***************************************************************** <br/> COPY FUNCTION <br/> *******************************************************************/ <br/> void copy(char st[]) <br/> { <br/> int i,j,l=0; <br/> char s1[50]; <br/> l=length(st); <br/> for(i=0;i<l;i++) <br=""> s1[i]=st[i]; <br/> s1[i]=NULL; <br/> printf("\tTHE STRING IS COPIED"); <br/> out(s1); <br/> getch(); <br/> } <br/> /***************************************************************** <br/> COMPARE FUNCTION <br/> *******************************************************************/ <br/> void compare(char st[]) <br/> { <br/> int i,j,l1=0,l2=0; < br/> char s1[50]; <br/> in(s1); <br/> l1=length(st); <br/> l2=length(s1); <br/> if(l1==l2) <br/> { <br/> for(i=0;i<l2;i++) <br=""> if(st[i]!=s1[i]) <br/> { <br/> if(st[i]>s1[i]) <br/> printf("\n\n\tFIRST STRING IS GREATER THAN THE SECOND "); <br/> else <br/> printf("\n\n\tSECOND STRING IS GREATER THAN THE FIRST "); <br/> break; <br/> } <br/> if(i==l2) <br/> printf("\n\n\tBOTH THE STRINGS R EQUAL"); <br/> } <br/> else <br/> { if(l1>l2) <br/> printf("\n\n\tFIRST STRING IS GREATER THAN THE SECOND "); <br/> else <br/> printf("\n\n\tSECOND STRING IS GREATER THAN THE FIRST "); <br/> } <br/> getch(); <br/> } <br/> /***************************************************************** <br/> SUBSTRING FUNCTION <br/> *******************************************************************/ <br/> void substring (char st[]) <br/> { <br/> int i,j,m=0,l1=0,l2=0; <br/> char s1[50]; <br/> in(s1); <br/> l1=length(st); <br/> l2=length(s1); <br/> for(i=0;i<l1;i++) <br=""> { <br/> if(st[i]==s1[0]) <br/> { <br/> for(j=0;j<l2;j++) <br=""> if(st[i+j]!=s1[j]) <br/> break; <br/> if(j==l2) <br/> m++; <br/> } <br/> } <br/> if(m!=0) <br/> printf("\n\n\t SUBSTRING IS PRESENT %d TIMES IN THE STRING",m); <br/> else <br/> printf("\n\n\tTHE SUBSTRING IS NOT PRESENT"); <br/> getch(); <br/> } <br/> /***************************************************************** <br/> CONCATINATION FUNCTION <br/> *******************************************************************/ <br/> void concat (char st[]) <br/> { <br/> int i=0,l1=0; <br/> char s1[50]; <br/> l1=length(st); <br/> while(s1[i]!='\r') <br/> st[i+l1]=s1[i++]; <br/> st[i+l1]=NULL; <br/> printf("\n\n\tCONCATINATED STRING :-->> "); <br/> out(st); <br/> } <br/> /***************************************************************** <br/> LENGTH FUNCTION <br/> *******************************************************************/ <br/> int length (char st[]) <br/> { <br/> int i; <br/> for(i=0;st[i]!=NULL;i++); <br/> return --i; <br/> } <br/> /***************************************************************** <br/> THANKS <br/> *******************************************************************/ |
Source projectgeek.com