Aim: To implement a program for following string operations:
-  Length of String.
 
-  String Concatenation.
 
-  Substring (provide start index and length)
 
-  Find character at given index.
 
-  Find index of first occurrence of a given character.
 
-  Reverse string.
 
 
Code:                       
class String
{
            char str[50];
            public:
            String();
            void getdata();
            int length1();
            void concat(String s);
            String substring(int ind, int len);
            char charAt(int ind);
            int indexOf(char ch);
            String reverse();
            void display();
};
 
void String::display()
{
            cout<
}
 
void String::getdata()
{
            gets(str);
}
 
String::String()
{
            strcpy(str,"");
}
 
int String::length1()
{
            int l;
            l=strlen(str);
            return (l);
}
 
void String::concat(String s)
{
            strcat(str,s.str);
}
 
String String::substring(int ind, int len)
{
            int l,x,m;
            char su[50];
            String sub;
            strcpy(sub.str,"");
            for(x=ind,m=0;x<=len+1;x++,m++)
            {
                        su[m]=str[x];
            }
            su[m]='\0';
            strcpy(sub.str,su);
            return (sub);
 
}
 
char String::charAt(int ind)
{
            char c=' ';
            int l=strlen(str);
            if(ind>l)
                        cout<<"Position out of Bounds";
            else
                        c=str[ind];
            return (c);
}
 
int String::indexOf(char ch)
{
            int x=1;
            while(str[x]!=ch && str[x]!='\0')
                        x++;
            if(str[x]!=ch)
                        return (-1);
            else
                        return (x);
}
 
String String::reverse()
{
            String s;
            strcpy(s.str,str);
            strrev(s.str);
            return (s);
}
 
void main()
{
            clrscr();
            String s1,s2,s3,s4;
            cout<<"Enter string 1:";
            s1.getdata();
            cout<<"\n\nEnter string 2:";
            s2.getdata();
            char ch='o';
            int l=s1.length1();
            cout<<"\n\nLength of string: '";
            s1.display();
            cout<<" 'is "<
            s1.concat(s2);
            cout<<"\n\nAfter concatenation:";
            s1.display();
            int ind=2, len=4;
            cout<<"\n\nStart Index="<
            s3.display();
            char c=s1.charAt(ind+4);
            cout<<"\n\nCharacter at Index: "<
            int i=s1.indexOf(ch);
            cout<<"\n\nIndex of '"<
            s4=s1.reverse();
            cout<<"\n\nReverse of \n\t'";
            s1.display();
            cout<<"'\n\t\tis \n\t";
            s4.display();
            getch();
 
}
Output:
Enter string 1: Ankit Goyal is
 
Enter string 2: a student of VESIT.
 
Length of string: 'Ankit Goyal is ' is 14
 
After concatenation: Ankit Goyal is a student of VESIT.
 
Start Index=2
Length of Substring=4
Substring: kit
 
Character at Index: 6 is 'G'
 
Index of 'o' is: 7
 
Reverse of
        'Ankit Goyal is a student of VESIT.'
                is
        .TISEV fo tneduts a si layoG tiknA