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" } } ```