写一个函数 int isRePattern(const char s[]),它能够判断一个字符串是 否由一个子串的两次重复组成,如字符串“abcabc”就是一个重复 Pattern,它由 子串“abc”的两次重复组成。其中,s 为待判断的字符串。并在主程序中测试该 函数。
#include <stdio.h>
#include <string.h>
_Bool IsRePattern( const char s[] )
{
size_t n = strlen(s);
return n%2==0 && memcmp(s,s+n/2,n/2)==0;
}
void test( const char* s )
{ printf( ""%s" %s a RePattern string.\n", s, IsRePattern(s)?"is":"isn't" ); }
int main( void )
{
test( "" );
test( "a" );
test( "aa" );
test( "ab" );
test( "abc" );
test( "abcabc" );
}