CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

请教一个查找字符串的程序。

楼主jiaolong0127()2005-04-02 22:32:55 在 C/C++ / C++ 语言 提问

请编写一个函数int   find(char   s[],char   t[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1.注意:用数组方式及两重循环来实现该函数. 问题点数:20、回复次数:9Top

1 楼ycom__net(一恒)回复于 2005-04-02 22:38:23 得分 0

直接查找或KMPTop

2 楼ewayne(...)回复于 2005-04-02 22:41:32 得分 1

循环,逐个字符匹配,如遇不匹配就重新开始匹配!Top

3 楼nasi00(莫傲·逍遥)回复于 2005-04-02 22:53:28 得分 1

库里面有这个函数阿,是strstr()Top

4 楼ybt631(默默耕耘!)回复于 2005-04-02 23:20:12 得分 1

就是字符串的匹配问题  
  如果字符串中重复的比较多,用kMP  
  其他的用经典匹配算法就可以了Top

5 楼bing_huo(我是一个演员!)回复于 2005-04-02 23:39:36 得分 4

std::string   str;  
  std::string   str2;  
   
  size_t   pos   =   str.find(str2);  
   
  if   (pos   !=   std::string::npos)  
  {  
          //找到  
  }  
  else  
  {  
          //找不到。。。。。  
  }  
   
  str.find(str2);  
   
   
  哈哈。。。Top

6 楼du51(郁郁思扬)回复于 2005-04-03 00:11:45 得分 5

#include<iostream>  
  using   namespace   std;  
  int   find(char   s[],char   t[])  
  {  
          int   len1=strlen(s),len2=strlen(t),i=0,j=0,k;  
          if(len1<len2)return   -1;  
          while(i<=len1-len2)  
          {  
                  k=i+1;  
                  if(s[i]-t[j])i++;  
                  else  
  {  
          while(1)  
          {  
  if(s[i++]-t[j++]){j=0;i=k;break;}  
  if(j==len2)return   i-len2;  
          }  
                    }  
          }  
          return   -1;  
  }  
  int   main()  
  {  
          char   s[]="Hello   C++     Jav   Hello   Java";  
          char   t[]="Java";  
          cout<<find(s,t)<<endl;  
          system("PAUSE");  
          return   0;  
  }  
  Top

7 楼ycom__net(一恒)回复于 2005-04-03 00:39:12 得分 4

#include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <memory.h>  
  #include   <string.h>  
   
  int     comp   (char   *str1,   char   *str2)  
   
  {  
          if(!strcmp(str1,str2))  
                return   1;  
          else   return   0;  
    }  
                 
  void     find   (char   *s,char   *t)  
  {  
          int   i=0,j=0,len=0,len1=0;  
          int   vec[10];  
          memset(vec,   0,   sizeof(vec));  
          len=strlen(s);  
          len1=strlen(t);  
          char   *tmp=new   char   (len+1);  
   
          for(i=0,j=0;   i<len1;   i++   )  
                {  
                    strncpy(tmp,   t+i,   len);  
                    *(tmp+len)='\0';  
                    printf("%s\n",tmp);  
                    if(comp(s,   tmp))  
                      {  
                        vec[j]=i+1;  
                        i+=(len-1);  
                        j++;  
                      }  
                  }      
            for(i=0;   i<10;   i++)  
                printf("%d   ",vec[i]);  
  }              
               
                   
    int   main()  
    {  
        char   str1[10],str2[100];  
        gets(str1);  
        gets(str2);  
        find(str1,   str2);  
        system("PAUSE");  
        }  
                                                     
                 
  Top

8 楼aniude(重返荣耀)回复于 2005-04-03 00:44:55 得分 3

#include   <stdio.h>  
  #define   N   10  
  int   find(char   a[],b[])  
  {  
    int   j=0;  
    while(*a++!=*b++   &&   *a!='\n'){j++;}  
    return   j;  
  }  
  void   main()  
  {  
    char   a[N]={abcde},b[N]={cd};  
    int   i;    
    i=find(a,b);  
    printf("%d",i);  
  }Top

9 楼ycom__net(一恒)回复于 2005-04-03 00:51:47 得分 1

aniude(阿牛的乜乜)    
   
  如果匹配的不知一处,   那i就不是一个值了Top

相关问题

  • 急,如何利用VB程序从EXCEL表中查找特定的字符串?
  • 救命!查找字符串!
  • 查找字符串!急!
  • 关于查找字符串
  • 字符串的查找????
  • 字符串查找替换
  • 如何查找字符串中的小字符串个数?
  • 字符串的查找问题
  • 求助!字符串查找问题
  • 关于字符串查找的问题

关键词

  • 函数
  • 字符串
  • 匹配
  • len
  • vec
  • strlen
  • find
  • std
  • str
  • char

得分解答快速导航

  • 帖主:jiaolong0127
  • ewayne
  • nasi00
  • ybt631
  • bing_huo
  • du51
  • ycom__net
  • aniude
  • ycom__net

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo