zoukankan      html  css  js  c++  java
  • 最简字符串查找操作(静态顺序串,非链串)

    // demo3.cpp : 定义控制台应用程序的入口点。
    //程序实现从母串中找到字串,并且输出字串在母串中的位置
    //audi.car@qq.com    
    //2015年4月4日10:44:04
    
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    
    int main()
    {
        char a[]="i boy a boy"; //母串
        char b[]="boy";            //字串
        int m=sizeof(a)-1;//母串长度
        int n=sizeof(b)-1;//字串长度
        int pos=0;        //字串在母串中的位置
        int temp=0;        //临时工
        for (int i=0;i<m;i++)
        {
            temp=i;//暂存母串数据起始位置
            for (int j=0;j<n;j++)
            {
                if (a[i]!=b[j])
                    break;
                i++;
                if (j==n-1)
                {
                    pos=temp;
                    cout<<"字串在母串的第 "<<pos+1<<" 个位置"<<endl;
                }
            }
            i=temp;//串字符不匹配  返回母串原来位置的下一个字母继续查找
        }
        return 0;
    }

    修改了一下源码,主要是为了实现字符串的实时录入,可以进一步修改为文本单词统计程序,这个比较简单 就不上源码了。可以参考http://hi.baidu.com/audi_car/item/c3c1803c7a72a3dc1b9696ba

    // demo3.cpp : 定义控制台应用程序的入口点。
    //程序实现从母串中找到字串,并且输出字串在母串中的位置
    //audi.car@qq.com    
    //2015年4月4日10:44:04
    //
    //程序改动主要为:实现了字符串的实时输入
    //2015年4月4日11:46:32
    
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    
    int main()
    {
        char a[300];        //母串
        char b[10];            //字串
        cout<<"请输入母串(不要超过300个字符) ";
        cin.getline(a,300);    //getline()函数可以接受三个参数,第三个参数为输入结束符  缺省默认为回车符
        cout<<"请输入字串(不超过10个字符)";
        cin.getline(b,10);
        //cout<<strlen(a)<<endl;
        //int m=sizeof(a)-1;//母串长度
        //int n=sizeof(b)-1;//字串长度
        int m=strlen(a);
        int n=strlen(b);   //使用strlen()函数替代sizeof()函数
        int pos=-1;        //字串在母串中的位置
        int temp=0;        //临时工
        for (int i=0;i<m;i++)
        {
            temp=i;//暂存母串数据起始位置
            for (int j=0;j<n;j++)
            {
                if (a[i]!=b[j])
                    break;
                i++;
                if (j==n-1)
                {
                    pos=temp;
                    cout<<"字串在母串的第 "<<pos+1<<" 个位置"<<endl;
                }
            }
            i=temp;//串字符不匹配  返回母串原来位置的下一个字母继续查找
            
        }
        if (pos==-1)
            cout<<"母串中找不到要查找的字串"<<endl;
        return 0;
    }
  • 相关阅读:
    box-shadow使用指南
    chrome的input默认样式黄色背景以及选中加粗的边框处理
    Spring AOP执行方法
    Spring JDBC主从数据库访问配置
    JS 命名冲突
    Data truncation: Truncated incorrect DOUBLE value 解决方案
    MySQL DATE_ADD() 函数
    Codeforces Round #340 (Div. 2)
    2020牛客寒假算法基础集训营3
    Codeforces Round #377 (Div. 2)
  • 原文地址:https://www.cnblogs.com/audi-car/p/4391892.html
Copyright © 2011-2022 走看看