标题:数据结构中串操作求next方法错哪里了?
取消只看楼主
abigboy
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-4-24
结帖率:66.67%
已结贴  问题点数:10 回复次数:0 
数据结构中串操作求next方法错哪里了?
#include<stdio.h>//在数据结构的串操作——求一个字符串的next值
#define max 10
int next(char s[],int a[]);
void main()
{
    int i=1,j=0,k=1,a[max];

    char s[max]={0},c[max];

    printf("input string\n");
    scanf("%s",s);
    puts(s);

    while(s[k]!='\0')//将字符串后移一个放到c里面
    {
        c[k]=s[k-1];
        k++;
    }

    c[k]='#';//将c最后一位设置为#结束标志

    next(c,a);//求一个字符串的next值
    for(i=1;i<10;i++)
    {
        printf("%d ",a[i]);
    }
}
int next(char s[],int a[])
{
    int i=1,j=0;
    while(s[i]!='#')
    {
        if(j==0||s[i]==s[j])
        {
            i++;j++;
            a[i]=j;
        }
        else
        {
            j=a[j];
        }
    }
return 1;
}


怎么弄都是有一个空间不能饮用是不是哪里需要开辟一个新空间还是怎么弄
搜索更多相关主题的帖子: next include 字符串 
2013-05-07 10:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406390-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.280163 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved