How to get all the possible Substrings of a String in C - Step by Step Examples



How to get all the possible Substrings of a String in C ?

Answer

To get all the possible substrings of a string in C, you can use nested loops. The outer loop defines the starting point of the substring, and the inner loop defines the endpoint, iterating through all possible combinations of starting and ending points to extract each substring.



✐ Examples

1 Get All Possible Substrings of a String

In this example,

  1. We create a string named str with a string value.
  2. We calculate the length of the string using the strlen function.
  3. We use a nested loop to generate all possible substrings. The outer loop sets the starting index of the substring, and the inner loop sets the ending index.
  4. In each iteration of the inner loop, we use the strncpy function to copy the substring into a temporary buffer and then add a null terminator.
  5. We print each substring to the standard output.

C Program

#include <stdio.h>
#include <string.h>

void printAllSubstrings(char* str) {
    int len = strlen(str);
    char temp[100];
    for (int i = 0; i < len; i++) {
        for (int j = i; j < len; j++) {
            strncpy(temp, &str[i], j - i + 1);
            temp[j - i + 1] = '\0';
            printf("%s\n", temp);
        }
    }
}

int main() {
    char str[] = "abc";
    printAllSubstrings(str);
    return 0;
}

Output

a
ab
abc
b
bc
c

2 Get All Possible Substrings of Another String

In this example,

  1. We create a string named str with a string value.
  2. We calculate the length of the string using the strlen function.
  3. We use a nested loop to generate all possible substrings. The outer loop sets the starting index of the substring, and the inner loop sets the ending index.
  4. In each iteration of the inner loop, we use the strncpy function to copy the substring into a temporary buffer and then add a null terminator.
  5. We print each substring to the standard output.

C Program

#include <stdio.h>
#include <string.h>

void printAllSubstrings(char* str) {
    int len = strlen(str);
    char temp[100];
    for (int i = 0; i < len; i++) {
        for (int j = i; j < len; j++) {
            strncpy(temp, &str[i], j - i + 1);
            temp[j - i + 1] = '\0';
            printf("%s\n", temp);
        }
    }
}

int main() {
    char str[] = "abcd";
    printAllSubstrings(str);
    return 0;
}

Output

a
ab
abc
abcd
b
bc
bcd
c
cd
d

Summary

In this tutorial, we learned How to get all the possible Substrings of a String in C language with well detailed examples.




More C Strings Tutorials

  1. How to Create an Empty String in C ?
  2. How to get Length of String in C ?
  3. How to get Character at Specific Index in String in C ?
  4. How to get First Character in String in C ?
  5. How to get Last Character in String in C ?
  6. How to get First N Characters in String in C ?
  7. How to get Last N Characters in String in C ?
  8. How to get Substring after Specific Character in C ?
  9. How to get Substring before Specific Character in C ?
  10. How to get Substring between two Specific Characters in C ?
  11. How to get Substring from Specific Index to End in C ?
  12. How to Iterate over Characters in String in C ?
  13. How to Iterate over Words in String in C ?
  14. How to Check if String is Empty in C ?
  15. How to Check if String contains only Alphabets in C ?
  16. How to Check if String contains only Alphabets and Numbers in C ?
  17. How to Check if String contains only Numeric Digits in C ?
  18. How to Check if a String contains given Substring in C ?
  19. How to Check if String contains specific Character in C ?
  20. How to Check if String starts with Specific Prefix in C ?
  21. How to Check if String ends with Specific Suffix in C ?
  22. How to Append a String to another String in C ?
  23. How to Append a Character to beginning of a String in C ?
  24. How to Append a Character to end of a String in C ?
  25. How to Concatenate Two Strings in C ?
  26. How to Repeat a String N Times in C ?
  27. How to Insert Character at Specific Index in String in C ?
  28. How to Replace a Substring in String in C ?
  29. How to Replace Character at Specific Index in String in C ?
  30. How to Replace All Occurrences of a Substring in a String in C ?
  31. How to Replace a Substring in a String using Regular Expression in C ?
  32. How to Split a String in C ?
  33. How to Split a String by New Line in C ?
  34. How to Split a String by Comma in C ?
  35. How to Sort Characters in String in C ?
  36. How to convert String to Lowercase in C ?
  37. How to convert String to Uppercase in C ?
  38. How to Trim a String in C ?
  39. How to convert First Character in String to Uppercase in C ?
  40. How to Reverse a String in C ?
  41. How to Remove Character at specific Index in a String in C ?
  42. How to Remove First Character in a String in C ?
  43. How to Remove Last Character in a String in C ?
  44. How to Remove first N Characters in a String in C ?
  45. How to Remove last N Characters in a String in C ?
  46. How to Remove specific Substring in C ?
  47. How to Remove specific Character from a String in C ?
  48. How to Remove All Whitespace Characters from a String in C ?
  49. How to Remove Special Characters from a String in C ?
  50. How to keep only Alphabets in a String in C ?
  51. How to Convert Integer to String in C ?
  52. How to Convert String to Integer in C ?
  53. How to convert String to Float in C ?
  54. How to convert Float to String in C ?
  55. How to check if Two Strings are Equal in C ?
  56. How to check if Two Strings are Equal ignoring case in C ?
  57. How to Compare Two Strings in C ?
  58. How to find the Characters in the First String that are not Present in the Second String in C ?
  59. How to find the Index of Substring in C ?
  60. How to find the Index of Last Occurrence of Substring in C ?
  61. How to find the Indices of All Occurrences of Substring in C ?
  62. How to get all the possible Substrings of a String in C ?
  63. How to get all the possible K length Substrings in a String in C ?