Determine whether str2 is a substring str1

substr(str1, str2)

http://codepad.org/0ordeOMn

#include<stdio.h>

void substr(char str[80], char subs[80]);
int main()
{
    char s1[80] = "Hello, World!";
    char s2[80] = "Wo";
    char s3[80] = "We";

    substr(s1,s2);
    substr(s1,s3);

    return 0;
}

void substr(char str[80], char subs[80])
{
    int pos = 0, i;
    int len1 = 0, len2 = 0;
    int found = 0;

    while (str[len1]) len1++;
    while (subs[len2]) len2++;
    if (len2 == 0) 
found = 1; //empty string is always a substring of any string while (!found && len1 - pos >= len2) { // Locate the first character that equals to the first character of subs while (str[pos] != subs[0])
pos++; if (len1 - pos >= len2) { i = 0; while (i < len2 && str[pos + i] == subs[i]) //Test whether all characters are same? { i++; } if (i == len2) //all characters are same { found = 1; } else pos++; } } if (found) printf("\"%s\" is a substring of \"%s\" starting from position %d\n", subs, str, pos); else printf("\"%s\" is not a substring of \"%s\"\n", subs, str); }

You have no rights to post comments