Get a substring of a char* [duplicate] Get a substring of a char* [duplicate] c c

Get a substring of a char* [duplicate]


char subbuff[5];memcpy( subbuff, &buff[10], 4 );subbuff[4] = '\0';

Job done :)


Assuming you know the position and the length of the substring:

char *buff = "this is a test string";printf("%.*s", 4, buff + 10);

You could achieve the same thing by copying the substring to another memory destination, but it's not reasonable since you already have it in memory.

This is a good example of avoiding unnecessary copying by using pointers.


Use char* strncpy(char* dest, char* src, int n) from <cstring>. In your case you will need to use the following code:

char* substr = malloc(4);strncpy(substr, buff+10, 4);

Full documentation on the strncpy function here.