Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

40,026 questions

51,982 answers

573 users

How to get the substring between two substrings in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* strrstr(const char* haystack, const char* needle) {
    char* result = NULL;
    char* current = strstr(haystack, needle);
    
    while (current) {
        result = current;
        current = strstr(current + 1, needle);
    }
    
    return result;
}

char* SubstringBetweenTwoSubstrings(const char* str, const char* suba, const char* subb) {
    char* posA = strstr(str, suba);
    char* posB = strrstr(str, subb);

    if (posA == NULL)
        return "";

    if (posB == NULL)
        return "";

    size_t indexEndSuba = posA - str + strlen(suba);
    if (indexEndSuba >= (size_t)(posB - str))
        return "";

    size_t length = posB - str - indexEndSuba;
    
    char* result = (char*)malloc(length + 1);
    
    strncpy(result, str + indexEndSuba, length);
    
    result[length] = '\0';
    
    return result;
}

int main() {
    const char* str = "C#:C C++:Java:Python";
    
    char* result = SubstringBetweenTwoSubstrings(str, "C#", "Java");
    
    printf("%s\n", result);
    
    free(result);
    
    return 0;
}



/*
run:

:C C++:

*/

 



answered Aug 2, 2024 by avibootz

Related questions

1 answer 83 views
1 answer 91 views
1 answer 96 views
1 answer 86 views
1 answer 101 views
1 answer 109 views
1 answer 91 views
...