| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5045 人关注过本帖
标题:编写一个函数string_in(char *str1,char *str2),如果字符串str1包含字符串s ...
只看楼主 加入收藏
cuijingchun
Rank: 3Rank: 3
来 自:黑龙江
等 级:论坛游侠
威 望:1
帖 子:108
专家分:186
注 册:2011-9-28
收藏
得分:0 
我没看出来,我不过,你编译时通过了吗
比如:  char a[80];  //也是 a或a[]
       int flag=1, a; //定义了a   

为自己喜欢游戏做一个自动打怪的程序QQ: 7325231    YY4350晚上编程课欢迎大家来听
2012-01-09 18:32
cuijingchun
Rank: 3Rank: 3
来 自:黑龙江
等 级:论坛游侠
威 望:1
帖 子:108
专家分:186
注 册:2011-9-28
收藏
得分:0 
程序代码:
# include <stdio.h>
#include"string.h"
int string_in(char* str1,char* str2)
{
    int p,l2;

    l2=strlen(str2); //把字符串2的长度赋给l2

    if(*str2)                   // s2 第一个字符不是空 进行下面的操作
    {
        while(*str1)              // s1  不是结束符作为循环条件
    {
            if(*str1==*str2)       //字符串1和字符串2第一个字符相比,如果相等,做下面的运算
    {
        for(p=0;*(str1+p)==*(str2+p);p++)       //s1  s2 从第一个字符开始比较并同时往下移一个字符
        {
            while(p>=(l2-1))    //当p自增到把s2跑完的时候,则表示字符串1包含字符串2
            return 1;           //返回1
        }
       
    }
    else if(*str1!='\n') str1++; //str1自增,使其找到与str2字符串首字符的字符。                         
    else  return 2 ; //当str1自增到结束的时候,他里面都没有字符串与str1相等,那就返回2
   
    }
    }
    return 2;
}
char main()
{
    char i[80],b[80];
    char* str1=i;
    char* str2=b;
   
    int flag=1,a;
    while(flag==1)
    {
        printf("imput string1 :\n");
        gets(str1);
       
        printf("imput string2 :\n");
        gets(str2);
       
        if(strlen(str1)<strlen(str2))
        {
            flag=1;
            printf("字符串1比字符串2多才对!");
        }
       
        else flag=0;
    }
   
    a=string_in(str1,str2);
   
    printf("%d",a);

    return 0;
   
}




/*void w(int* a,int* b) //在main里面 w(&x, &y);
  {
      int c;
      c= *a;
      *a=*b;
      *b=c;

 
  }  
int main (void)
{   
    int x,y;
    printf("请输入2个数:");
    scanf("%d,%d",&x,&y);
    if(x>y)
    w( &x, &y);
    printf("%d %d",x,y);
   
    return 0;
}*/
我改了下, 但能编译通过了,我也不太明白,我慢慢看,.  VC6.0  能返回1 2

为自己喜欢游戏做一个自动打怪的程序QQ: 7325231    YY4350晚上编程课欢迎大家来听
2012-01-09 18:42
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
刚才在一个QQ群里问一高手得到一个更好的算法

认为事物非黑即白是缺智慧的表现……
2012-01-09 19:05
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
算法有问题,有BUG

认为事物非黑即白是缺智慧的表现……
2012-01-09 19:26
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
#include"stdio.h"
#include"string.h"
int string_in(char* str1,char* str2)
{int NMflag1=0,NMflag2=0;
  char* temstr;
   temstr=str2;
   
while(!*temstr)
{  if(*str1==*temstr)
     {   str1++;
        temstr++;
        NMflag1++;
        NMflag2++;
        }
        else if(*str1!='\n'){
                 str1++;
                temstr=str2;
                  NMflag1=0;
                      }
          else {
              break;
          }
          }
       if(NMflag1==NMflag2){
           return 1;}
           else return 2;
      

}

int main(){
    char a[80],b[80];
    char* str1;
    char* str2;
    str1=a,str2=b;
    int flag=1,c;
    while(flag==1){
    printf("imput string1 :\n");
    gets(str1);
    printf("imput string2 :\n");
    gets(str2);
    if(strlen(str1)<strlen(str2))
         {flag=1;
         printf("the str1 must langer than str2! input string again!");}
         else flag=0;
          }
    c=string_in(str1,str2);
    printf("%d",c);
   


}

[ 本帖最后由 a271885843 于 2012-8-3 16:18 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-01-10 22:03
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
回复 2楼 embed_xuel
是声明吧
全局变量这么写倒是可以叫定义,bss段默认0
不过无所谓了,怎么叫都可以,不在字面上纠结

技术问题,请不要以短消息方式提问
2012-01-10 22:33
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 16楼 zaixuexi
bss段是用来存放程序中未初始化的全局变量和静态变量的一块内存区域。而str1,str2是局部变量,在栈上

总有那身价贱的人给作业贴回复完整的代码
2012-01-10 22:57
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
回复 17楼 embed_xuel
你觉得我哪里说错了?

技术问题,请不要以短消息方式提问
2012-01-10 23:01
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
我就帮你讲了个全局变量的写法,你反过来跟我说str1,str2是局部变量在栈上,有必要伐?是个人都知道局部变量在哪里
你也不动脑子想想,不用的局部变量,编译器干吗要给他分配内存,我说声明有错?你不管是用vc还是gcc,objdump自己去看一看好伐?
你明显就是看了别人的一段话,来和我讨论bss

技术问题,请不要以短消息方式提问
2012-01-10 23:25
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 19楼 zaixuexi
你要干吗?

总有那身价贱的人给作业贴回复完整的代码
2012-01-10 23:36
快速回复:编写一个函数string_in(char *str1,char *str2),如果字符串str1包含字 ...
数据加载中...
 
   



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

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