Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get a substring of a char* [duplicate]

Tags:

c

substring

char

People also ask

How do I copy a substring to another string?

strcpy can be used to copy one string to another. Remember that C strings are character arrays. You must pass character array, or pointer to character array to this function where string will be copied.

How do you get a certain part of a string C?

The substring() function returns the substring of the source string starting at the position specified in the third argument and the length specified in the fourth argument of the function.

How can I copy just a portion of a string in C?

We can use string function strncpy() to copy part strings. Part of the second string is added to the first string. strcpy(destination_string, source_string, n);

Is there substring in C?

strncpy() Function to Get a Substring in C The strncpy() function is the same as strcpy() function. The only difference is that the strncpy() function copies the given number of characters from the source string to the destination string. The strncpy() function is available in the <string.


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.


You can use strstr. Example code here.

Note that the returned result is not null terminated.


You can just use strstr() from <string.h>

$ man strstr