How to search a string in a char array in C?

arrays, c, string

Solution

if the chararray contains stringend or do not end with \0 you can use these code, because strstr will brake on these ones:

#include <stdio.h>
int main()
{
    char c_to_search[5] = "asdf";

    char text[68] = "hello my name is \0 there is some other string behind it \n\0 asdf";

    int pos_search = 0;
    int pos_text = 0;
    int len_search = 4;
    int len_text = 67;
    for (pos_text = 0; pos_text < len_text - len_search;++pos_text)
    {
        if(text[pos_text] == c_to_search[pos_search])
        {
            ++pos_search;
            if(pos_search == len_search)
            {
                // match
                printf("match from %d to %d\n",pos_text-len_search,pos_text);
                return;
            }
        }
        else
        {
           pos_text -=pos_search;
           pos_search = 0;
        }
    }
    // no match
    printf("no match\n");
   return 0;
}

http://ideone.com/2In3mr

Problem

For example I have: ``` char buff[1000]; ``` I want to search if the string "hassasin" is in that char array. Here is what I have tried. ``` char word[8] = "hassasin"; char Buffer[1000]=sdfhksfhkasd/./.fjka(hassasin)hdkjfakjsdfhkksjdfhkjh....etc int k=0; int t=0; int len=0; int sor=0; for (k=0; k<1000; k++){ for (t=0; t<8; t++){ if (Buffer[k]==word[t]) len++; if (len==8) "it founds 0.9.1" } } ```

Original source