C語言中查詢字串第一次出現的位置
阿新 • • 發佈:2019-02-19
只是簡單的逐一查詢,記載一下,留個腳印。
#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); }