实际运行的时候没有区别,中间的内容都是一个字符串
#include <stdio.h>
#include <stdlib.h>
比较两个字符串的内容,输出相同的字符,第二个字符串中*通配任意字符,直到两字符串有相同的字符
/* 请按照要求实现下列函数 */
void findinStr(const char *pIn, const char *pkey,char *pOut)
{
int inIndex=0,keyIndex=0,outIndex=0;
for(keyIndex=0;pIn[inIndex]!='\0'&&pkey[keyIndex]!='\0';keyIndex++)
{
if(pkey[keyIndex]=='*')
{
pOut[outIndex]=pIn[inIndex];
outIndex++;
if(pkey[keyIndex+1]!=pIn[inIndex+1])
{
keyIndex--;
}
}
else
{
if(pkey[keyIndex]==pIn[inIndex])
{
pOut[outIndex]=pIn[inIndex];
outIndex++;
}
}
inIndex++;
}
pOut[outIndex]='\0';
}
/* main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出*/
/* 当前你可以使用其他方法测试,只要保证最终程序能正确执行即可 */
/* 该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响*/
void main()
{
/* TODO: 请测试时改变改用例 */
char pIn[] = {"abcdefabcdeg"};
char pkey[]={"a*f"};
char pOut[1024]={0};
/* TODO: 调用被测函数 */
findinStr(pIn, pkey, pOut);
/* TODO: 执行完成后可比较是否是你认为正确的值 */
printf(pOut);
}