只是简单的逐一查找,记载一下,留个脚印。
#include"stdio.h"
void Str_FirFind(char *,char *);
int main(void)
{
Str_FirFind("dksjamabckjdhaac","abc");
Str_FirFind("abcjamabckjdhaac","abc");
Str_FirFind("dksjamabzkjdhabc","abc");
Str_FirFind("dksjamabzkjdhab","abc");
Str_FirFind("aabbccabzkjdhacb","abc");
return 0;
}
void Str_FirFind(char *str_target,char *str_use)
{
char *str_temp1 = NULL;
char *str_temp2 = NULL;
int count_i,count_j;
int flg_find = 0;
for(count_i = 1;*str_target != '\0';count_i++) {
if(*str_target == *str_use){
str_temp1 = str_target;
str_temp2 = str_use;
for(count_j = 1;*str_temp2 != '\0';count_j++){ //以要查找的字符串长度为循环回数
str_temp1++;
if(*str_temp1 == '\0'){ //判断是否到目标字符串的结尾
break;
}
str_temp2++;
if(*str_temp2 == '\0'){ //判断是否到查找字符串的结尾
flg_find = 1;
break;
}
if(*str_temp1 != *str_temp2){
break; //出现不相等的情况即返回上层循环重新查找
}else if(*(str_temp2 + 1) == '\0'){ //如果下一个字符为结尾,那么证明已经找到
flg_find = 1;
break;
}
}
}
if(flg_find == 1){
printf("First Position: %d\n",count_i);
return;
}
str_target++;
}
printf("No Find ""%s""\n",str_use);
}