1. 程式人生 > >C語言中查詢字串第一次出現的位置

C語言中查詢字串第一次出現的位置

只是簡單的逐一查詢,記載一下,留個腳印。

#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);
}