Question:
What is the best way to manipulate strings in C++?
Answer:
Here is an example.
#includeThe above approach will work, but it needs a lots more code to make it reallyrobust, e.g. what if the instring was sent in as null, or what if it was 80 chars in length, etc.void foo (char *instring){ // Declare char array big enough to read in input char read_string[80]; cin.readline(read_string,80); if(strcmp(read_string,instring) == 0) // strcmp returns 0 if the strings // match { // do something } else { // strings do not match }}
So to avoid these commonly occurring problems it is best to use some kindof String class to do all of your string processing. Almost all compilervendors include a String class with their implementations. String classes provide methods and operators to construct, assign, copy, read and write tostreams and many more operations.
Here’s how the above example would look if I had used the STL string classinstead of char arrays and pointers:
#include#include void foo(const string & instring){ string read_string; // construct a string object cin >> read_string; if (instring == read_string) // .. do something else //… do something else.}