| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:大家看看哪里出现问题了。。程序运行不了。。
只看楼主 加入收藏
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
结帖率:50%
收藏
 问题点数:0 回复次数:3 
大家看看哪里出现问题了。。程序运行不了。。
#include<stdio.h>
#include<string.h>
#define maxsize 100
typedef struct{
    char ch[maxsize];
    int length;
}String;
int PartPosition(String S,String T,int k)
{
   int i=k-1;
   int j=0;
   while(i<S.length&&j<T.length)
   {
       if(S.ch[i]==T.ch[j])
       {
           i++;
           j++;
       }
       else
       {
           i=i-j+1;
           j=0;
       }
   }
   if(j>=T.length)
   return i-T.length;
   else
   return -1;
} //字符串的模式匹配算法
int main(void)
{
    int i,j,k;
    int rec[100];
    i=0;
    String S1,T1;
    printf("\t请输入主字符串:");gets(S1.ch);
    printf("\t请输入要比较的字符串:");gets(T1.ch);
    S1.length=strlen(S1.ch);
    T1.length=strlen(T1.ch);
    k=0;
    while(k<S1.length-1)
    {
        j=PartPosition(S1,T1,k);
        if(j<0)
        {
            printf("无");
        }
        else
        {
            i++;
            rec[i]=j;
            k=j+T1.length;
            
        }
    }
    printf("子串T1出现在S1中的次数为%d",T1.ch,i);
    printf("%d的匹配位置分别为",i);
    for(k=1;k<=i;k++)   
    printf("%-4d",rec[k]);
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: return 字符串 
2011-05-11 17:12
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#define maxsize 100
typedef struct{
    char ch[maxsize];
    int length;
}String;
int PartPosition(String S,String T,int k)
{
   int i=k-1;
   int j=0;
   while(i<S.length&&j<T.length)
   {
       if(S.ch[i]==T.ch[j])
       {
           i++;
           j++;
       }
       else
       {
           i=i-j+1;
           j=0;
       }
   }
   if(j>=T.length)
   return i-T.length;
   else
   return -1;
} //字符串的模式匹配算法
int main(void)
{
    int i,j,k;
    int rec[100];
    i=0;
    String S1,T1;
    printf("\t请输入主字符串:");gets(S1.ch);
    printf("\t请输入要比较的字符串:");gets(T1.ch);
    S1.length=strlen(S1.ch);
    T1.length=strlen(T1.ch);
    k=0;
    while(k<S1.length-1)
    {
        j=PartPosition(S1,T1,k);
        if(j<0)
        {
            printf("");
            k++;  //这句要有,不然有时候出不了while
        }
        else
        {
            rec[i]=j;
            k=j+T1.length;
            i++;  //放这里,要不然rec[0]为空
        }
    }
    printf("子串%s出现在%s中的次数为%d",T1.ch,S1.ch,i);  //输出参数不对
    printf("%d次的匹配位置分别为",i);
    for(k=1;k<=i;k++)   
    printf("%-4d",rec[k]);
    printf("\n");
    return 0;
} 


[ 本帖最后由 qq1023569223 于 2011-5-11 20:40 编辑 ]

   唯实惟新 至诚致志
2011-05-11 20:37
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
楼上的厉害

                                         
===========深入<----------------->浅出============
2011-05-11 20:53
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
收藏
得分:0 
回复 2楼 qq1023569223
很感谢....
2011-06-13 22:09
快速回复:大家看看哪里出现问题了。。程序运行不了。。
数据加载中...
 
   



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

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