用C++设计一个查找字符的程序

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:43:36
用C++设计一个程序,运行结果大体如下:

请输入一个字符串:
请输入你要查找的字符:
请输入你要查找的字符串:
如果输入的字符存在,请显示出他的具体位置,要是不存在就显示不存在。
字符串同上。
要能够运行得起的呀,
请各位大虾多多帮助呀!!!!

//作者:baihacker
//时间:9.12.2006
#include <stdio.h>
#include <string.h>

/*x,m,y,n为需要匹配的数据
s存储匹配位置c为匹配数
kmp算法*/
void kmp(x,m,y,n,s,c);

/*x,m,y,n为需要匹配的数据
s存储匹配位置c为匹配数
普通算法*/
void find(x,m,y,n,s,c)
char *x;
int m;
char *y;
int n;
int* s;
int* c;
{
int i, j, t;
*c=0;
for (i=0;i<m-n+1;i++)
{
t = 0;
for (j=0;j<n;j++)
if (*(y+j)==*(x+i+j))
t++;
if (t==n)
s[(*c)++] = i;
}
}

void main()
{
char* x="12312332312343123123";
char* y="123";
int m = strlen(x);
int n = strlen(y);

int s[50];
int c;
int i;
int j;
find(x,m,y,n,s,&c);

for (j=0;j<c;j++)
printf("%d\t",s[j]);
}

void kmp(x,m,y,n,s,c)
char *x;
int m;
char *y;
int n;