Getting all suffixes of a string in c++ -


in c 1 can declare char array, create pointer specific location in array, , dereference suffix in specified position:

char str[6] = "sleep"; char* pointer = &(str[1]); printf("%s\n", pointer); 

the above code print

leep 

which suffix of "sleep" in position 1. there way similar in c++ without using substr method produces new string , i'm trying avoid that.

you can you've done.

char str[6] = "sleep"; char* pointer = &(str[1]); printf("%s\n", pointer); 

if using std::string instead of raw char buffer (like should be), under c++11 std::string guaranteed have contiguous storage (21.4.1/5) appended nul terminator (21.4.7.1/1):

std::string str = "sleep"; const char* pointer = &str[1]; 

these guarantees new c++11 -- c++03 makes no such guarantees. implementations i'm aware of in fact use contigious storage appended nul terminator. because c_str() required return const pointer c-style string. if want solution guaranteed compliant in c++03, std::vector makes same contiguity guarantee, in c++03, of course there must apply nul terminator on own:

std::string load = "sleep"; vector <char> str; copy (load.begin(), load.end(), back_inserter (str)); load.push_back ('\0'); // appended nul terminator const char* pointer = &str [1]; 

but we're talking making copies, obviously.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -