在str1中查找str2,len是str1的长度
int Str_mach(u8 *str1,u8 *str2,int len) //str1:要比较的数组,str2:要在str1中查找的字符串,len:str1的长度
{
int q,i;
u8 str3[16]={0}; //str3是一个临时缓存数组,如果要查找的字符串(str2)超出str3的范围,修改即可。
for(q=0;q<len;q++)
{
for(i=0;i<strlen(str2);i++)
str3[i]=str1[i+q];
if(strstr(str3,str2)==0) //原来是strcmp,后改成strstr 原来是都可以的,后来感觉有点小问题,也没找出在哪
return q; //返回第一次字符串出现的位置
else
continue;
}
return -1; // 不是return 0 是为了防止需要匹配的字符串在在第0位就出现!!!
}
下面举个栗子
j=Str_mach(USART2_RX_BUF,"NAME",strlen(USART2_RX_BUF));
意思是从串口2接收字符缓存中查找NAME第一次出现的位置,并且将值赋给j(int)。