DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Compare a string with a file. (http://www.daniweb.com/forums/thread123630.html)

tharris7 May 11th, 2008 5:41 am
Compare a string with a file.
 
Hi,

I'm quite new to C++ so all help is appreciated.

I have a program that makes a string of at least three characters. I want to be able to compare the string to a list of words (i.e. dictionary) in a separate file, and then output the string if it is in the dictionary.

The string 'word' is a string object so I'm having problems with strcmp (which only takes chars?). The reason I used a string object is because I have to use substr and concatenation, and I'm not very familiar with using char arrays. (I've mostly done Java before).

What I have got so far:

char dictword[32];    
ifstream dictionary("dictionary.txt");

while (dictionary>>dictword)
{     
        if (strcmp(dictword,word)!=0)
                  cout<<word<<'\n";
}

Thanks in advance,
Tim

niek_e May 11th, 2008 7:19 am
Re: Compare a string with a file.
 
Quote:

Originally Posted by tharris7 (Post 604634)
char dictword[32];    
}

Why use char arrays when c++ provides you with strings? Mixing up C and C++ is very confusing and will require a lot of casting. So what about something like:
string word = "abc";
string dictword;
ifstream dictionary("dictionary.txt");
while (getline(dictionary, dictword, ' '))
{     
        if (word == dictword)
                  cout << "found: " << word << "\n";
}
Off course you'll have to build in some error checking etc. And this code assumes that all words in textfile are delimited with a space. So some more work is required from you


All times are GMT -4. The time now is 7:04 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC