永发信息网

C++帮忙完成内存匹配函数

答案:2  悬赏:20  手机版
解决时间 2021-03-10 14:56
int memstr(char*src,int srclen,char*key,int keylen);
注意是内存匹配,src和key都不是字符串,因此传入srclen和keylen两个长度参数,返回key在src中首次出现的位置的索引,不需要思路,我自己想,调试成功才给分
最佳答案
//#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;
}
全部回答
鄙人认为是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(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有读了大学的人后悔读了大学的,如果有机
被除数和除数之和是28.8,商数是3,请问被除
求文档: 双人旁加一个贞叫什么
金石文印社地址在什么地方,想过去办事
诛仙一共有几册
梦源路/顺通巷(路口)地址在哪,我要去那里办
需求曲线的斜率有正负之分吗?
请问各城市2020年的面貌
我小孩喜欢跳舞,不知道那里有好点的舞蹈室,
天造地设的一对,是什么意思?
沃尔玛购物广场江桥分店地址在什么地方,想过
体育具有哪些功能?()
户口迁移社保怎么办
北京花卉批发市场有哪些,哪个规模最大
sm打头的英语
推荐资讯
宾馆饭店酒店各有什么区别
手机内置存储可以安装软件在里面吗?
【作文水问】读《水问》有感作文
宜居地产我想知道这个在什么地方
郫都区自考办地址在哪里?
重庆小面馆在哪里啊,我有事要去这个地方
运动后身体有什么变化?
12米是()米的三分之一,()米是12米的三分
人站在竖直放置的平面镜前,当人逐渐远离平面
沃智能手机店地址有知道的么?有点事想过去
我的电脑win7系统,显卡被我禁用了直接黑屏
12点24小时后是多少晚上12点还是白天12点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?