zoukankan      html  css  js  c++  java
  • 字符串匹配

    问题描述:读入两个字符串a和b,判断a是否是b的子串。如果是,计算a在b中出现了几次。

    例如:如果a="aba", b="ababab",则a在b中出现了两次。如果a="abc",b="ababab",则a不是b的子串。

    代码如下:

    #include <iostream>
    #include <cstring>
    using namespace std;
    char a[100], b[100];
    int la, lb, count;   				//定义两个字符串的长度和计数器 
    
    void input_data()					//输入数据的过程 
    {
    	cin >> a;
    	cin >> b;
    }
    
    void solve()						//解决问题的过程 
    {
    	bool match;						//表示从某一位置开始能否匹配 
    	la = strlen(a);
    	lb = strlen(b);
    	count = 0;
    	for (int i=0; i<=lb-la; i++)		// 循环变量i表示起始的位置 
    	{
    		match = true;
    		for (int j=0; j<la; j++)
    		{
    			if (a[j]!= b[i+j])				//如果在某一位置无法匹配 
    			{
    				match = false;
    				break;
    			}
    		}
    		if (match)
    			count++;
    	}
    }
    
    void output_data()					//输出结果 
    {
    	if (count == 0)
    		cout << "a不是b的子串"<< endl;
    	else
    		cout << "a在b中出现了"<< count << "次"<< endl; 
    }
    
    int main()
    {
    	input_data();
    	solve();
    	output_data();
    	return 0;
    }


  • 相关阅读:
    SQL函数——CASE
    初始Oracle
    ASP.NET中JQuery+AJAX调用后台
    性能优化——SQL语句(续)
    性能优化——SQL语句
    今日开讲—— easyui-combobox动态赋值
    SSH 项目建立过程
    Util
    前端 s 标签获取值
    日期选择文本框
  • 原文地址:https://www.cnblogs.com/Tovi/p/6194889.html
Copyright © 2011-2022 走看看