| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2899 人关注过本帖, 1 人收藏
标题:今天写了个小程序 很爽
只看楼主 加入收藏
易中暑
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-10
收藏
得分:0 
学习下,学编程就是要多写多练
2010-11-10 13:47
su858514558
Rank: 2
等 级:论坛游民
帖 子:7
专家分:22
注 册:2010-11-10
收藏
得分:0 
新手上路
2010-11-10 21:43
小品
Rank: 1
来 自:厦门
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-10
收藏
得分:0 
我还要多多学习哈哈~~膜拜一下~

边走边学C语言
2010-11-10 22:34
肖付
Rank: 2
等 级:论坛游民
帖 子:53
专家分:24
注 册:2010-9-11
收藏
得分:0 
向LZ学习。
2010-11-10 23:48
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
/** 。。。。
*   file: CallBack.cpp
*   athuor:wxd
*   email: wxd273612158@
*/
#include<iostream>
#include<vector>
#include<string>
using namespace std;

class StrEdit
{
public:
    bool clear(char *p)
    {
        cout <<p  << ":"<< "clear" << endl;
        return false;
    }
    bool save(char *p)
    {
        cout <<p << ":"<< "save" << endl;
        return false;
    }
    bool reset(char *p)
    {
        cout <<p << ":"<< "reset" << endl;
        return false;
    }
    bool end(char *p)
    {
        cout <<p  << ":"<< "end" << endl;
        return false;
    }

private:
    //pass
    vector<string> arr;

};

class RegHandle
{
public:
    typedef bool (StrEdit::*XregFun)( char* p);
    RegHandle() {}
   
    void Rh()//注册函数
    {
        this->p[0] = &StrEdit::clear;
        this->p[1] = &StrEdit::save;
        this->p[2] = &StrEdit::reset;
        this->p[3] = &StrEdit::end;
    }
   
    void Call(int ip, char *pp)
    {
        (s.*p[ip])(pp);//回调函数
    }
   
    int IsChar(unsigned char ch)
    {
        char *p = "$%*#";
        for(int i =0; i < strlen(p); i ++)
            if(ch == p[i])
                return i;
        return -1;
    }
   
    void run()
    {
        char ch[24] = {0};
        char buf[24] = {0};
        string s;
        int map = 0;
        int cur = 0;
        cin >> ch;
        for(int i = 0; i < strlen(ch); i ++)
        {
                map = IsChar(ch[i]);
                if (map != -1)
                {
                    s.assign(ch + cur, i - cur);
                    cur = i + 1;
                    Call(map, (char*)s.c_str());
                    s.erase();
                }
               
        }
               
    }

private:

    StrEdit s;
    XregFun p[4];
};

// reg.RegFun(StrEdit::clear, 1);
// 利用的你的小程序原理与实现结果,俺写了个回调函数处理小程序!
// 输入:wang%dong%dong%waa$
// 结果:
// wang:save
// dong:save
// dong:save
// waa:clear
int main()
{
    static RegHandle reg;
    reg.Rh();
    reg.run();
    return 0;
}
2010-11-11 17:39
dominator
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2009-2-16
收藏
得分:0 
呵呵 ··我还在郁闷阶段勒··!
2010-11-15 18:11
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
很好
加油

南国利剑
2010-11-15 22:08
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
初学者学函数?
2010-11-16 07:18
hancycrystal
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2010-8-31
收藏
得分:0 
我也是初学者,真羡慕
2010-11-18 19:06
zy248210252
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-11-9
收藏
得分:0 
羡慕
我还不会编呢!!!!
2010-11-18 19:28
快速回复:今天写了个小程序 很爽
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012209 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved