| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 843 人关注过本帖
标题:数绝结构--求两字符串的公共字符
只看楼主 加入收藏
xiaoyao15
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
数绝结构--求两字符串的公共字符
#include"stdio.h"
#include"stringlist.cpp"
SqString Common(SqString s,SqString t)   /*求两个字符串中相同的字符*/
{
  int i,j,m,k=0;
  SqString str;        /*定义一个新的SqString类型的字符串*/
  
 for(i=0;i<s.length;i++)
  { for(j=0;j<t.length;j++)
     
     if(s.data[i]==t.data[j])
     {
       str.data[k]=s.data[i];
          k++;
          break;
     }
   str.length=k+1;
    return str;
}

void main()
{
  SqString s1,s2, s3;
  char a[11]="abcd";
  char b[11]="acgef";
  StrAssign(s1,a);    /* 给字符串s1赋初值*/
  StrAssign(s2,b);
  DispStr(s1);        /*输出字符串s1*/
  DispStr(s2);
  s3=Common(s1,s2);   /*用s3记录s1和s2的公共字符*/
  DispStr(s3);
  printf("\n");
}
麻烦大家帮我看看为题出在哪里
搜索更多相关主题的帖子: 字符 结构 
2010-04-25 23:09
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:6 
SqString Common(SqString s,SqString t)
函数的花括号 没有匹配成对

  /*求两个字符串中相同的字符*/函数的算法 不正确 j总是从t串的第一个开始比  如果是相等j也是要移动的
是求其中最长的 还是随便求一个就回去?  如果是最长的 就要比较长度
  还有点 求相同的部分 不一定要从串头开始就要相等  
2010-04-26 17:47
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:6 
回复2楼的 能否给出一些代码看看

Discuz!  
好好学习  天天向上
2010-04-27 08:28
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXSIZE 81

typedef struct
{   
    int len;
    char ch[MAXSIZE];
}stringtype;

void ComStrMax(stringtype *s, stringtype *t)
{
  int  position=0, maxlen=0, i=0, j, k, length;
  while(i<s->len)
  {
    j=0;
    while(j<t->len)
     {
       if(s->ch[i]==t->ch[j])
        {
           length=1;
           for(k=1;s->ch[i+k]==t->ch[j+k];k++)
              length++;
           if(length>maxlen)
            {
               position=i;
               maxlen=length;
            }
            j+=length;
         }
         else
           j++;
      }
      i++;
   }
   
   printf("\n字符串'%s'和'%s'的最长公共子串:",s->ch,t->ch);
   for(i=0;i<maxlen;i++)
     printf("%c",s->ch[position+i]);
   getchar();
}

int  main()
{
      stringtype *str,*str1;
      str = (stringtype*) malloc (sizeof(stringtype));
      str1 = (stringtype*) malloc (sizeof(stringtype));
      printf("输入第一个字符串:");
      scanf("%s",str->ch);
      str->len=strlen(str->ch);
      printf("输入第二个字符串:");
      scanf("%s",str1->ch);
      str1->len=strlen(str1->ch);
      getchar();
      ComStrMax(str,str1);

      return 0;
}
2010-04-27 17:10
oneo
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2010-4-22
收藏
得分:6 
斑竹 请问我想把两个文本文件中的公共字符串显示出来 可以吗,怎么改?
2010-05-02 17:50
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
只要写一个输出函数就可以了

Discuz!  
好好学习  天天向上
2010-05-02 21:38
oneo
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2010-4-22
收藏
得分:0 
大哥 重点是“文件” 不是“显示”。。。
2010-05-03 01:27
快速回复:数绝结构--求两字符串的公共字符
数据加载中...
 
   



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

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