How to check if a string starts with a specified substring in C

2 Answers

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

bool startsWith(const char* str, const char* substr) {
    return strncmp(str, substr, strlen(substr)) == 0;
}

int main() {
    const char* str = "C run desktop applications";
    const char* substr = "C run";

    if (startsWith(str, substr)) {
        printf("yes\n");
    } else {
        printf("no\n");
    }

    return 0;
}

 
 
/*
run:
 
yes
 
*/

 



answered Feb 9, 2025 by avibootz
0 votes
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdbool.h>

void toLower(char* s) {
    for (int i = 0; s[i]; i++) {
        s[i] = tolower(s[i]);
    }
}

bool startsWith(const char* str, const char* substr) {
    char lowerStr[256] = "";
    char lowerSubstr[256] = "";
    
    strcpy(lowerStr, str);
    strcpy(lowerSubstr, substr);

    toLower(lowerStr);
    toLower(lowerSubstr);

    return strncmp(lowerStr, lowerSubstr, strlen(lowerSubstr)) == 0;
}

int main() {
    const char* str = "c run desktop applications";
    const char* substr = "C RUN";

    if (startsWith(str, substr)) {
        printf("yes\n");
    } else {
        printf("no\n");
    }

    return 0;
}



/*
run:

yes

*/

 



answered Feb 9, 2025 by avibootz
...