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

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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.