首页 > 试题广场 >

编写一个指针型函数,用于求一个字符串中最长的相同字符子串,也

[问答题]
编写一个指针型函数,用于求一个字符串中最长的相同字符子串,也就是说这样的子串中所有字符是相同的。
推荐
设计一个指针型函数maxsubstr(char * str,int &maxn),它返回str中最长的相同字符子串的首位置,maxn返回其字符个数。对应的程序如下:
#include <stdio.h>
char * maxsubstr(char * str,int &maxn)
{
    int n;
    char * p=str, * maxp=p;
    maxn=1;
    while ( * p)
    {    n=1;
        while ( * (p+1) && * p== * (p+1))
        {   n++;
           p++;
        }
        if (n>maxn)
        {   maxn=n;
           maxp=p-n+1;
        }
        p++;
    }
    return maxp;
}
void main()
{
    char str[ ]="122221333333";
    char * p;
    int n,i;
    p=maxsubstr(str,n);
    printf("最长子串:");
    for (i=0;i<n;i++ )
        printf("%c", * p++ );
    printf("\n");
}




发表于 2018-05-07 10:58:39 回复(0)