const char *my_strstr(const char *text, const char *pat) { for(;;) { for(int i = 0; ; ++i) { // pat の終端記号までループ if( pat[i] == '\0' ) return text; // 終端記号まで一致した場合はパターン発見 if( pat[i] != text[i] ) // 文字が不一致の場合は、ループを抜ける break; } if( *text++ == '\0' ) // text の終端記号に達した場合は、 return 0; // 0 を返す } }
解説:
const char *my_strstr(const char *text, const char *pat) { for(;;) { const char *t2 = text; const char *p2 = pat; for(;;) { if( *p2 == '\0' ) return text; if( *p2++ != *t2++ ) break; } if( *text++ == '\0' ) return 0; } }
解説:
const char *my_strstr(const char *text, const char *pat) { for (;;) { if( my_is_matched(text, pat) ) { // text 位置が pat とマッチする場合 return text; // そのアドレスを返す } if( *text++ == '\0' ) { break; } } return 0; }
解説:
前: | 次: