| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 782 人关注过本帖
标题:个位前辈帮我看个字符串
取消只看楼主 加入收藏
代号阿杰
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-12-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
个位前辈帮我看个字符串
原本要求是要求输入字符串A,还有字符串B,判断B是否是A的子字符串,如果是的话就把B显示出来,如果不是的话就重新输入
我自己写了这个代码,但是只有把第一个字母包含进去的子字符串是对的其他好多不对,个位前辈帮我看下是哪里出问题了,代码里那些11111\22222是为了测试方便而写的,前辈勿笑.
#include<stdio.h>
#include<stdlib.h>

int fine(char[],char[],int);
void main()
{
    char a[40];
    char b[40];
    int conut1;
    int repeat;
   
    printf("请输入一段字符a:");
    gets(a);
    printf("输入的a是:%s\n",a);
   
    to:printf("请输入一段字符b:");
    gets(b);
    for(conut1=0; b[conut1]; conut1++);//奶奶的分号
    printf("b的长度是%d个字符\n",conut1);
    repeat=fine(a,b,conut1);//是否满足重新输入条件
    if(!repeat)
    goto to;
}   
int fine(char a[40],char b[40], int conut1)
{
    int conut2;
    int conut3;
    int conut4;
    int flag;
    for(conut2=0; a[conut2]==b[0]; conut2++);//找第一个相同的字符
    if(conut2)
    {
        for(conut4=0,conut3=0; conut3<=conut1; conut3++,conut4++)
        {
            if(a[conut2+conut3]==b[conut4])//一样的话就继续比下一个字符
            continue;
            else
            {
                flag=0;
                break;
            }            
        }
        printf("%s是%s的子字符串\n",b,a);
        flag=1;
    }
    else if(!conut2)
    {
        printf("%s不是%s的子字符串22222222\n",b,a);
        flag=0;
    }
    return flag;
}


[ 本帖最后由 代号阿杰 于 2009-12-2 07:18 编辑 ]
搜索更多相关主题的帖子: 字符 前辈 
2009-12-02 07:14
代号阿杰
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-12-2
收藏
得分:0 
谢谢前辈哈,for(conut2=0; a[conut2]!=b[0]; conut2++);这句是我大意了
但是我弄不明白后面为什么还有个conut2++呢?
2009-12-02 08:55
快速回复:个位前辈帮我看个字符串
数据加载中...
 
   



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

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