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