w3resource

C Programming: Extract a substring from a given string

C String: Exercise-13 with Solution

Write a program in C to extract a substring from a given string.

C Programming: Extract a substring from a given string

Sample Solution:

C Code:

#include <stdio.h>
void main() 
{
   char str[100], sstr[100];
   int pos, l, c = 0;
   
       printf("\n\nExtract a substring from a given string:\n");
       printf("--------------------------------------------\n");  
 
       printf("Input the string : ");
       fgets(str, sizeof str, stdin);
 
   printf("Input the position to start extraction :");
   scanf("%d", &pos);
   
   printf("Input the length of substring :");
   scanf("%d", &l);
 
   while (c < l) 
   {
      sstr[c] = str[pos+c-1];
      c++;
   }
   sstr[c] = '\0';
 
   printf("The substring retrieve from the string is : \" %s\ "\n\n", sstr);
 
}

Sample Output:

Extract a substring from a given string:                                                                      
--------------------------------------------                                                                  
Input the string : This is test string                                                                        
Input the position to start extraction :9                                                                     
Input the length of substring :4                                                                              
The substring retrieve from the string is : " test "  

Flowchart :

Flowchart: Extract a substring from a given string

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to read a string through keyboard and sort it using bubble sort.
Next: Write a C program to check whether a given substring is present in the given string.

What is the difficulty level of this exercise?



C Programming: Tips of the Day

Is there a way to specify how many characters of a string to print out using printf()?

The basic way is:

printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars"); 

The other, often more useful, way is:

printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars"); 

Here, you specify the length as an int argument to printf(), which treats the '*' in the format as a request to get the length from an argument.

You can also use the notation:

printf ("Here are the first 8 chars: %*.*s\n",
        8, 8, "A string that is more than 8 chars"); 

This is also analogous to the "%8.8s" notation, but again allows you to specify the minimum and maximum lengths at runtime - more realistically in a scenario like:

printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info); 

The POSIX specification for printf() defines these mechanisms.

Ref: https://bit.ly/395Zj2j