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;
    }
  • 相关阅读:
    商务通代码
    Ubuntu 创建快捷方式的方法
    Linux安装Nginx
    Linux安装jdk10
    Mycat实现Mysql数据库读写分离
    Mysql主从复制
    SpringBoot整合Redis集群
    Redis集群环境搭建
    SpringBoot整合redis哨兵主从服务
    redis 哨兵机制环境搭建
  • 原文地址:https://www.cnblogs.com/audi-car/p/4391892.html
Copyright © 2011-2022 走看看