My str search function
Hello this is my first post here, i made this search function and i would like some feedback and or tips. (:
// Implement your own [search]strstr[/search] function. (Intermediate)
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Search
{
private:
int m_nTextL;
int m_nSearchL;
int m_nResult;
bool m_bFound;
public:
Search(string strText = 0, string strSearch = 0)
: m_nTextL(strText.length()-1)
, m_nSearchL(strSearch.length()-1)
, m_nResult(0), m_bFound(false)
{
int aaa = 0; int bbb = 0;
while(1)
{
while(strSearch[aaa] == strText[bbb++])
{ aaa++; break; }
if(aaa>0 && !(strSearch[aaa] == strText[bbb])) aaa = 0;
if(aaa == m_nSearchL)
{ m_bFound = true; m_nResult = bbb--; break; }
if(bbb == m_nTextL)
{ m_bFound = false; m_nResult = 0; break; }
}
if(m_bFound == true) for(bbb--; bbb<=m_nTextL; bbb++)
cout << strText[bbb];
else cout << "No match!";
cout << endl;
}
};
int main()
{
Search jeg("This is the text i want to search in", "want");
system("pause");
return 0;
}
Andreas5
Junior Poster in Training
67 posts since Jun 2010
Reputation Points: 23
Solved Threads: 8
I wouldn't do everything in the constructor. I would make it more like this:
Search mySearch;
mySearch.SetText("This is the text I want to search in");
mySearch.SetSearchString("want");
bool found = mySearch.Search();
This way you also can use the result in the calling function.
Dave
daviddoria
Posting Virtuoso
1,996 posts since Feb 2008
Reputation Points: 437
Solved Threads: 204
Agni
Practically a Master Poster
655 posts since Dec 2007
Reputation Points: 431
Solved Threads: 116
Its pointless doing this since, you are using string, unless you are doing this as an
exercise.
string text = "This is the text I want to search in";
string wordToFind = "want";
bool isFound = text.find(wordToFind) != string::npos;
firstPerson
Senior Poster
3,923 posts since Dec 2008
Reputation Points: 841
Solved Threads: 608
Andreas5
Junior Poster in Training
67 posts since Jun 2010
Reputation Points: 23
Solved Threads: 8