There seem to be a number of users asking C++ questions without conducting proper research, as is apparent in the following question I understand that the users asking question about C++ cannot be expected to understand the language to its fullest extent, although I wish they studied the features of C++ before asking questions that use them.

This is a general problem of all of SO. The quality requirement on questions on SO has been dropped significantly over the years. There used to be a requirement that people actually had basic understanding about the topic they ask about. This policy was removed many years ago, meaning that even complete beginner questions are considered on-topic. The result of this policy has given more site traffic at the cost of quality.

If you feel that the lack of research by the OP is significant, then that may merit a down vote of the question. That is, if they could find the information themselves by for example reading the first chapters of a beginner-level C++ book or just Google it.

The way to deal with frequently-asked beginner questions is to close them as duplicates, since beginner questions have almost always been asked many times before. For such FAQs there often exists a "canonical duplicate" which is the preferred one to use for closing purposes.

If you know that such a duplicate question exists and that it is of high quality, you can flag the post to prompt that it should get closed as duplicate. Higher rep users will be able to cast such close votes themselves without using flags. And users who have a "gold badge" for the tag (in this case C++) are considered to have lots of knowledge of the topic any may therefore close such questions instantly, without involving anyone else (aka "dupe hammer").

As for your specific case, I think it is a pretty reasonable question. I would imagine that it should be a common one. Though of course the root of the OP's confusion isn't related to the inclusion of string.h but about how to use the std namespace in general.

The normal thing to do here would be to find a canonical duplicate along the lines of "Why must we type std:: in front of all standard library identifiers?". But it would seem that no such duplicate exists, or at least I can't find one. Bit surprising actually.

(I found this but it wasn't particularly good - should perhaps even be closed as a duplicate to the post in your question.)

So the correct approach here is probably to leave the question be, there are no obvious problems with it and no canonical duplicates seem to exist.

I was thinking of providing links to websites containing complete documentation on C++ when users ask a question with the c++ tag, but what can be done?

First of all, there exists extensive on-site resources for this already. There is the C++ tag wiki and the C++ Documentation project. (The latter is of mediocre quality and I wouldn't personally recommend using it for any purpose.)

You should never post answers that contain nothing more than a mere link to an external site. This is frowned upon since SO answers should contain content by themselves - SO is a knowledge base, not a collection of bookmarks. In addition, such links to external sites tend to go inactive over time, meaning that people coming across it in the future won't be able to find the information they are looking for.

Therefore, if you want to provide links to external sites, it is best to do this in the form of comments. Or alternatively, flesh out the answer with an explanation together with the link.