int memstr(char*src,int srclen,char*key,int keylen);
注意是内存匹配,src和key都不是字符串,因此传入srclen和keylen两个长度参数,返回key在src中首次出现的位置的索引,不需要思路,我自己想,调试成功才给分
C++帮忙完成内存匹配函数
答案:2 悬赏:20 手机版
解决时间 2021-03-10 14:56
- 提问者网友:末路
- 2021-03-09 22:22
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-03-09 22:32
//#include "stdafx.h"//vc++6.0加上这一行.
#include
using namespace std;
int memstr(char *src,int srclen,char *key,int keylen){
int i,j,k;
for(k=srclen-keylen+1,i=0;i
for(j=0;j
if(key[j]!=src[i+j])
break;
if(j==keylen)
return i;
}
return -1;
}
int main(void){//只用来测试一下memstr
char a[]="1234567890jfkasl;jfklsa;fjl;safjl;ask";
cout << memstr(a,10,"90",2) << endl;
return 0;
}
#include
using namespace std;
int memstr(char *src,int srclen,char *key,int keylen){
int i,j,k;
for(k=srclen-keylen+1,i=0;i
break;
if(j==keylen)
return i;
}
return -1;
}
int main(void){//只用来测试一下memstr
char a[]="1234567890jfkasl;jfklsa;fjl;safjl;ask";
cout << memstr(a,10,"90",2) << endl;
return 0;
}
全部回答
- 1楼网友:人類模型
- 2021-03-10 00:06
鄙人认为是cout对输出重载的问题,而不是类函数地址分配问题,准确地说,任何类函数的地址都是静态的,派生和基类所谓覆盖和虚函数,都是针对虚函数表的操作,所以通过一般方法也能得到类函数地址:
#include <iostream>
#include <stdio.h>
using namespace std;
struct aa
{
void bb(){ cout << "a\n"; };
void dd(){ cout << "b\n"; };
};
void cc(){};
void main()
{
char a[100];
printf("%x %x\n", &aa::bb, &aa::dd);
sprintf(a, "%x", &aa::bb);
//cout<< &aa::bb << &aa::dd << endl;
//cout<< &cc <<endl;
void (*f)();
sscanf(a, "%x", (int*)&f);
f();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯