| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 568 人关注过本帖
标题:数据结构中串操作求next方法错哪里了?
只看楼主 加入收藏
abigboy
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-4-24
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:1 
数据结构中串操作求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
liu_鹏
Rank: 2
等 级:论坛游民
帖 子:33
专家分:75
注 册:2013-4-16
收藏
得分:10 
    while(s[k]!='\0')//将字符串后移一个放到c里面
    {
         c[k]=s[k-1];
         k++;
     }

     c[k]='#';
在你的while语句结束之后,你的c[k]='#';中的K值任然是1.

不懂就发帖。懂了就恢复。
2013-05-07 12:53
快速回复:数据结构中串操作求next方法错哪里了?
数据加载中...
 
   



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

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