| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 418 人关注过本帖
标题:初学者,有意者,帮帮我哦~
只看楼主 加入收藏
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:8 
初学者,有意者,帮帮我哦~
编写程序,输入两个字符串存入数组a和数组b中,判断数组b中字符串是否在数组a字符串中出现(称为子串)。若b串是a串的子串则输出“yes!”,否则输出 “no!”
搜索更多相关主题的帖子: 字符串 
2011-04-11 21:45
迷糊战神no1
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:129
注 册:2010-11-29
收藏
得分:3 
kmp     算法   或模式匹配
2011-04-11 22:06
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:3 
这个好象有现成的函数吧!自己写也可以的,不过比较麻烦!用指针移动,一个个比较!

[ 本帖最后由 qq1023569223 于 2011-4-11 22:13 编辑 ]

   唯实惟新 至诚致志
2011-04-11 22:12
王立帅
Rank: 3Rank: 3
来 自:山东淄博
等 级:论坛游侠
帖 子:61
专家分:160
注 册:2011-4-4
收藏
得分:3 
找本数据结构看看

一个人走
2011-04-11 22:16
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
收藏
得分:0 
回复 3楼 qq1023569223
#define N 30
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
  int m,n,i,j,k;
  char a[N];
  char b[N];
  clrscr();

  printf("Input string a:");
  gets (a);
  printf("Input string b:");
  gets (b);
  m=strlen(a);
  n=strlen(b);
  for(k=0;k<m-n;k++)
     {
    for(i=k;j=0;a[i]==b[j]&&a[i]!='\0'&&b[j]!='\0';i++;j++;)
        if(j==n)
          {
        printf("Yes");
        break;
          }
     }
  if(j!=0)
     printf("No");
     getch();

}



你说的那么我都还没有学 我刚开始学c   你改改我的程序 好吗?
2011-04-11 22:18
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
收藏
得分:0 
回复 4楼 王立帅
还没学呢。。。。
2011-04-11 22:18
独行wang
Rank: 1
等 级:新手上路
帖 子:6
专家分:8
注 册:2011-4-11
收藏
得分:3 
我来给你写个简单的:
#define N 30
#include<stdio.h>
#include<string.h>
void main()
{
  int m,n,i,j,k;
  char a[N];
  char b[N];
  printf("Input string a:\n");
  gets (a);
  printf("Input string b:\n");
  gets (b);
  m=strlen(a);
  n=strlen(b);
  for(i=0;i<m-n;i++)
  {
       k=i;
       j=0;
       while(j<n&&a[k]==b[j])
         {
            k++;
            j++;
         }
     if(j==n)
     {
         printf("YES!\n");
         break;
     }
  }
     if(j!=n)
         printf("NO!\n");
}

2011-04-11 23:27
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
#define N 30
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
  int m,n,i,j,k;
  char a[N];
  char b[N];
  clrscr();

  printf("Input string a:");
  gets (a);
  printf("Input string b:");
  gets (b);
  m=strlen(a);
  n=strlen(b);
  for(k=0;k<=m-n;k++)
     {
    for(i=k;j=0;a[i]==b[j]&&a[i]!='\0'&&b[j]!='\0';i++,j++;)
        if(j==n)
          {
        printf("Yes");
        return 1;
          }
     }
  if(k==m-n+1)
     printf("No");
     getch();
  return 0;
}


   唯实惟新 至诚致志
2011-04-12 06:28
mm1010220cs
Rank: 2
等 级:论坛游民
帖 子:36
专家分:98
注 册:2011-4-7
收藏
得分:3 
int main()
{
    bool flag=false;
    int i=0,j=0;
    char a[50],b[50];
    cin>>a;
    cin>>b;
    while(b[i] != '\0')
    {
        while(a[j] == b[i]&& b[i] != '\0')
        {
            j++;
            i++;
        }
        if(a[j] == '\0')
        {
            flag=true;
            cout<<"yes!"<<endl;
            cin>>j;//使输出停止
            return 0;
        }
        if(j != 0)
        {
            i--;
            j=0;
        }
        i++;
    }
    if(!flag)
        cout<<"no!"<<endl;
    cin>>j;

    return 0;
}
2011-04-12 13:50
快速回复:初学者,有意者,帮帮我哦~
数据加载中...
 
   



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

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