C實現strstr函數

char * my_strstr(char *str, char * substr) {
	char * pre_str=str;
	char * pre_substr=substr;
	while(*str && *substr) {
		if(*substr && (*str == *substr)) {        //如果匹配部分,則繼續進行匹配
			++str;
			++substr;
		}
		else if(!*substr) {                       //如果子串空,說明完全匹配
			return str- (substr-pre_substr);      //返回子串在主串裏的起始匹配點
		}
		else if(*str != *substr) {                 //不匹配的情況處理
			if(substr!=pre_substr) {               //有一部分匹配的情況處理,循環回退
				str=str- (substr-pre_substr) ;
				substr=pre_substr;
			}
			++str;                                 //主串的循環
		}
	}
	if(!*substr) {                                //退出時,如果子串空,則匹配,輸出匹配點
			return str- (substr-pre_substr);
		}
	return NULL;
}
end.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章