您的位置:首页 > 编程语言

关于字符串匹配计数和编程思想方法

2016-03-14 21:04 337 查看
/*

题目如下:

使用VC6打开考生文件夹下的源程序文件modi2.cpp.

请完成fun(char* s1,char* s2),此函数的功能是计算s1

中出现s2的个数,当不出现时,则返回0.

如:

s1为”1112223333aaaaeeffd”

s2为”11”则返回1

s2为”aa”则返回2

*/

这是一道二级C++题目

一、首先,用基本的图解来描述一下思路:



二、用随意自己的语言写下大致过程,有特殊情况到一般情况:

对于S1首位,

if S2[0]=S1[0];



s2[n-1]=s1[n-1];

则->对输出标志位增一

然后是一般情形,

s2[0]=s1[k-1]



s2[m-1]=s1[m-1+k-1]

三、写下基本的程序、

include "stdafx.h"
include "iostream"
using namespace std;
int fun(char* s1, char* s2)
{
int flag = 0;
//求字符指针的长度也可以这么求
//int s1len;
//for(s1len=0;s1[s1len]!=0;s1len++)
//这个是用累计来计算
for (int i = 0; i < strlen(s1); i++)//最后的i是等于strlen(s1)的
{
int j = 0;
for (; j < strlen(s2);j++)
{
if (s2[j] != s1[j + i])
break;
}

if (j == strlen(s2))
{
i += strlen(s2);
flag++;
i--;
}

}
return flag;
}
int _tmain(int argc, _TCHAR* argv[])
{
int delay;
char s1[1024];
char s2[256];
cout << "please input a string:" << endl;
cin.getline(s1, 1024);
cout << "please input other string:" << endl;
cin.getline(s2, 256);
cout << fun(s1, s2);
cout << endl;
cin >> delay;
return 0;

}


四、带入一些简单的例子检验对否。

这里我带入的是111111111,和111
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: