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;
}
解説:
前: | 次: