Write a function in c using for loops The function must not

Write a function in c++ using for loops:

The function must not use any function templates from the algorithms portion of the Standard C++ library.

bool locateSequence(const string a[], int n, string target, int& begin, int& end);

Find the earliest occurrence in a of one or more consecutive strings that are equal to target; set begin to the position of the first occurrence of target, set end to the last occurrence of target in that earliest consecutive sequence, and return true. If n is negative or if no string in a is equal to target, leave begin and end unchanged and return false. Here\'s an example:

Notwithstanding each function\'s behavior described below, all functions that return an int must return 1 if they are passed any bad arguments (e.g. a negative array size, or a position that would require looking at the contents of an element past the last element we\'re interested in). Unless otherwise noted, passing 0 to the function as the array size is not itself an error; it merely indicates the function should examine no elements of the array.

Solution

Please follow the code and comments for description :

CODE :

#include <iostream> // required header files

using namespace std;

bool locateSequence(const string a[], int n, string target, int& begin, int& end); // function declaration

bool locateSequence(const string a[], int n, string target, int& begin, int& end) { // function definiton
  
bool found = false; // locla varaibles
  
if(n <= 0) { // check for the size of the array
return false; // return false
}
  
for(int counter = 0; counter < n; counter++){ // loop over the size of the array
       if((a[counter] == target) && a[(counter + 1)] == target){ // check for the occurrence
           begin = counter; // assign the data
           end = (counter + 1);
           found = true;
           break; // break the loop
       } else if ((a[counter] == target)){ // if found only once
       begin = 1; // return the standard values
       end = 1;
       found = true;      
       } else {
       continue; // else loop over the data
       }
   }
  
   if(found == true) { // check for the flag
   return true;
   } else {
   return false;
   }
}

int main() // driver method
{
string d[9] = {\"jon\", \"daenerys\", \"samwell\", \"samwell\", \"margaery\", \"margaery\", \"margaery\", \"samwell\", \"samwell\"}; // reuired array
int b; // local variables
int e;
bool b1 = locateSequence(d, 9, \"samwell\", b, e); // returns true and sets b to 2 and e to 3
cout << \"Found at \" << b << \" and \" << e << endl; // data to be printed
bool b2 = locateSequence(d, 9, \"daenerys\", b, e); // returns true and sets b to 1 and e to 1
cout << \"Found at \" << b << \" and \" << e << endl; // data to be printed
bool b3 = locateSequence(d, 9, \"cersei\", b, e); // returns false and leaves b and e unchanged
cout << \"Found at \" << b << \" and \" << e << endl; // data to be printed
  
return 0;
}

OUTPUT :

Found at 2 and 3
Found at 1 and 1
Found at 1 and 1

Hope this is helpful.

Write a function in c++ using for loops: The function must not use any function templates from the algorithms portion of the Standard C++ library. bool locateSe
Write a function in c++ using for loops: The function must not use any function templates from the algorithms portion of the Standard C++ library. bool locateSe

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site