How to convert a char* pointer into a C++ string?

c++, pointers, strchr, string

Solution

- To get the `C` string equivalent of the `C++` `string` object use `c_str` function.

- To locate the first occurence of a `char` in a `string` object use `find_first_of` function.

Example:

string s = "abc";

// call to strlen expects char *
cout<<strlen(s.c_str());  // prints 3

// on failure find_first_of return string::npos
if(s.find_first_of('a') != string::npos)
    cout<<s<<" has an a"<<endl;
else
    cout<<s<<" has no a"<<endl;

Note: I gave the `strlen` just an example of a function that takes `char*`.

Problem

I have a C++ `string`. I need to pass this string to a function accepting a `char*` parameter (for example - `strchr()`). a) How do I get that pointer? b) Is there some function equivalent to `strschr()` that works for `C++ strings`?

Original source

Related problems