PropellerAds
Posted by : Unknown Thursday, 29 January 2015

1.       Create a menu with following options
a.       Give Input
                                                               i.      Takes input from user and saves it in the first array
b.      Copy a string
                                                               i.      User will enter a string and it will be copied in both the arrays
c.       Concat string
                                                               i.      When concat string option is selected, concatenate the string in the first array to second array
d.      Search String
                                                               i.      Search first array for the string entered by the user and only print true/false if found/not found
e.      Display String
                                                               i.      Display the second array to user when this option is selected.
2.       For above options your program will have six functions in total including main.
3.       Create two character arrays of size 1000 in main function.
4.       Every time user selects an option pass both the arrays to functions in the form of pointers.
5.       Use pointers to traverse and manipulate the arrays.
6.       Create a temporary array inside any function is allowed.


   
//C++ program to copy cancatenate search and display string through pointers
#include<iostream>
#include<conio.h>


using namespace std;

const int array_size = 1000;

void input(char *a);
void copy(char *a, char *b);
void concat(char *a, char *b);
int search(char *a, char *b);
void display(char *a, char *b);

void main(){
char arr1[array_size];
char arr2[array_size];
char a;
int b = 0;

//initialinzing array
arr1[0] = '\0';
arr2[0] = '\0';
for (int i = 1; i < array_size; i++){
arr1[i] = '-';
arr2[i] = '-';
}

while (true){
cout << "Enter the respective key to perform function:" << endl << endl
<< "1.\tInput String." << endl
<< "2.\tCopy String." << endl
<< "3.\tConcat String." << endl
<< "4.\tSearch String." << endl
<< "5.\tDisplay String." << endl;

a = _getch();

system("cls");
switch (a)
{
case '1':
input(arr1);
break;
case '2':
copy(arr1, arr2);
break;
case '3':
concat(arr1, arr2);
break;
case '4':
b = search(arr1, arr2);
if(b == 0){
cout << arr1 <<" String not founded";
} else{
cout << arr1 << " founded " << b << " times.";
}
break;
case '5':
display(arr1, arr2);
break;
default:
system("cls");
cout << "Invalid Key" << endl;
break;
}


cout << "\n\nPress any key to continue.....";
_getch();
system("cls");
}
}

void input(char *a) {
cout << "Enter string:";
cin >> a;

cout << "Successfully Entered...";
}

void copy(char *a, char *b){
cout << "Copying string....";
while (*a != '\0'){//lastpoint of copiying string
if (*b == '-' || *b == '\0'){//last point of 2nd string or its empty slots
*b = *a; //copy value
a++; //move to next value
}
b++;

if (*a == '\0'){            //end of copying string
*b = '+';
b++;
*b = '\0';
}
}
}
void concat(char *a, char *b){
char *c = a;
cout << "Concatinating string....";
while (*c != '\0'){
if (*b == '-' || *b == '\0'){
*b = *c;
c++;
}
b++;

if (*c == '\0'){
*b = '+';
b++;
*b = '\0';
}

}

*a = '\0';

}
int search(char *a, char *b){
char *c = a;
int counter = 0;

cout << "Searching: " << c << endl << endl;

c= a;

while(*b != '\0'){

while(*b != '+'){
if(*c == *b){
c++;
b++;
} else{
c = a;
b++;
}
if(*c == '\0' && *b == '+'){
counter++;
}
}

b++;
c = a;
}

if(counter > 0){return counter;}

return 0;
}
void display(char *a, char *b){
cout << "String A: " << a << endl;
cout << "String B: " << b << endl;
}

Leave a Reply

Subscribe to Posts | Subscribe to Comments

PropellerAds
PropellerAds

Popular Post

Powered by Blogger.

- Copyright © BSCS -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -