免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wjtmain
打印 上一主题 下一主题

新年快乐 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2003-12-31 14:58 |只看该作者

新年快乐

怎么还是不行啊?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
22 [报告]
发表于 2003-12-31 15:01 |只看该作者

新年快乐

[quote]原帖由 "BingbingNorth"]怎么还是不行啊?[/quote 发表:

呵呵,你怎么弄得,
你编辑编辑,直到弄好为止!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
23 [报告]
发表于 2003-12-31 15:02 |只看该作者

新年快乐

[code]
#include <stdio.h>;
#include <string.h>;


/*×帧

论坛徽章:
0
24 [报告]
发表于 2003-12-31 15:05 |只看该作者

新年快乐

今天我生日请你们吃"蛋糕"

dangao_012b.jpg (17.14 KB, 下载次数: 20)

dangao_012b.jpg

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
25 [报告]
发表于 2003-12-31 15:07 |只看该作者

新年快乐

真的吗?mm在哪里?
我要去!
生日快乐哦!    

论坛徽章:
0
26 [报告]
发表于 2003-12-31 15:12 |只看该作者

新年快乐

hehe谢谢~反正不再北京就是了呀~

论坛徽章:
0
27 [报告]
发表于 2003-12-31 15:12 |只看该作者

新年快乐

字符串扫描函数[code]/*-----------------------------------------------------------------------------
字符串的强格式匹配(相对与scanf)
按照规定格式对字符串进行扫描的函数
限制条件:格式有三种%d代表扫描有符号整数,%f代表扫描长浮点数,%s代表扫描字符串
每个元素的后缀字符串最大长度为100
最多能扫描的元素数为100
除最后一个元素的后缀外,后缀串必须要不为空,否则扫描会发生问题
返回值为扫描到的值的个数
-----------------------------------------------------------------------------*/
int s_scanf(const char * str, const char * fmt, ...)
{
        typedef struct
        {
                char sufix[100+1];/*每一个元素的后缀*/
                char type;/*每一个元素的类型*/
                void * addr;/*每一个元素的输出地址*/
        }Telement;



        int elements_len;
        int i;
        va_list argv ;
        Telement elements[100];
        char * sufix_start;
        char * sufix_end;
        char * value_start;/*其实可以借用前面两个变量,定义自己的变量是为了增加可读性*/
        char * value_end;
        char * str_end;/*输入字符串的结束位置*/
        char value[1000];

        va_start(argv,fmt);
        /*扫描格式串*/


        /*进行必要的格式检查*/
        if((strlen(fmt)>;2)&&(fmt[0]=='%')&&((fmt[1]=='d')||(fmt[1]=='f')||(fmt[1]=='s')))
        {
                elements[0].type=fmt[1];
                elements[0].addr=va_arg(argv, void *);
        }
        else
        {
                va_end(argv);
                return 0;
        }



        sufix_start=(char *)fmt+2;
        elements_len=0;
        /*当sufix_start到达文件尾时,该条件也会返回NULL*/

        while(((sufix_end=strchr(sufix_start,'%'))!=NULL)
            &&((sufix_end[1]=='d')||(sufix_end[1]=='f') ||(sufix_end[1]=='s')))
        {
                memcpy(elements[elements_len].sufix, sufix_start, sufix_end-sufix_start);
                elements[elements_len].sufix[sufix_end-sufix_start]='\0';
                elements[elements_len+1].type=sufix_end[1];
                elements[elements_len+1].addr=va_arg(argv, char *);
                sufix_start=sufix_end+2;
                elements_len++;
        };

        /*剩下的是最后一个元素的后缀,可能为空*/
        va_end(argv);
        strcpy(elements[elements_len].sufix, sufix_start);
        elements_len++;/*elements_len最后是总元素的个数,而不是最后一个元素的下标*/



        va_end(argv);





        i=0;
        value_start=(char *)str;
        str_end=(char *)str+strlen(str);
        while((i<elements_len) && (value_start<str_end))
        {
                value_end=strstr(value_start,elements[i].sufix);
                if((value_start,elements[i].sufix[0]=='\0')||(value_end==NULL))
                        value_end=str_end;


                memcpy(value, value_start, value_end-value_start);
                value[value_end-value_start]='\0';
                switch(elements[i].type)
                {

                        case 'd':

                                *((int *)elements[i].addr)=atoi(value);
                                break;
                        case 'f':
                                *((double*)elements[i].addr)=atof(value);
                                break;

                        case 's':
                                memcpy((char *)elements[i].addr, value, value_end-value_start+1);
                                break;
                }



                value_start=value_end+strlen(elements[i].sufix);
                i++;
        }

        return i;
}[/code][/b]

论坛徽章:
0
28 [报告]
发表于 2003-12-31 15:14 |只看该作者

新年快乐

还是不行
  1. code
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
29 [报告]
发表于 2003-12-31 15:18 |只看该作者

新年快乐

[quote]原帖由 "BingbingNorth"][/quote 发表:

这次不是行了呀。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
30 [报告]
发表于 2003-12-31 15:19 |只看该作者

新年快乐

[quote]原帖由 "gccbuilder"]hehe谢谢~反正不再北京就是了呀~[/quote 发表:

唉,看来是吃不到了。
呵呵,我现在也不在北京。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP