bool my_ends_with(const char *text, const char *pat) { int plen = strlen(pat); if( plen == 0 ) { return true; // パターンが空文字列の場合は、常に true を返す } int tlen = strlen(text); if( plen > tlen ) { return false; // パターン長がテキスト長より大きい場合は、常に false を返す } text += tlen - plen; // text を末尾のパターン位置に合わせる while( *text == *pat ) { // text, pat の指す先が等しい間ループ if( *text == '\0' ) { return true; // 終端まで一致した場合は true を返す } ++text; // ポインタを先に進める ++pat; } return false; // 不一致があった場合は false を返す }
解説:
前: | 次: