All pastes #434323 Raw Edit

C func, format func

public c v1 · immutable
·published 2007-04-11 11:05 UTC
rendered paste body
#include <stdarg.h>#include <stdio.h>void _axel(char*target, const char*format, ...){    int p;    int tmp;    char *tmp_x;    va_list args;    char* x = "0123456789abcdef";    va_start(args,format);    while(*format != '\0'){        if(*format=='%')        {            switch (*++format){                case 'c':                    tmp=va_arg(args,int);                    *target++ = tmp;                    break;                case 'd':                    tmp=va_arg(args,int);                    p=1000000000;                    while(p){                        if(tmp>=p){                            *target++ = tmp/p%10+'0';                        }                        p=p/10;                    }                    break;                case 's':                    tmp_x=va_arg(args,char*);                    while(*++format != '0'){                        printf(" Hei du lille ");                        //                        // Her mådu bruke tmp_x istedet for format;:::::                        //                        //*++target=*++tmp_x; // Denne oeker target og format _kun_ etter ;                        //++tmp_x;                    }                    break;                case 'x':                    tmp=va_arg(args,int);                    p=0x10000000;                    while(p){                        if(tmp>=p){                            *target++ = x[tmp/p%0x10];                        }                        p=p/0x10;                    }                    break;                case '%':                    *target++='%';                    break;            }                        ++format;        }        else        {            *target++ = *format++; // Denne oeker target og format _kun_ etter ;        }    }    *target=0;}int main(){    int a;    char dest[50] = "___________________";    _axel(dest, "jonas eple %x",10);                                                                                                                                                                                                   //_axel(dest, "");    printf("%s\n",dest);    return 0;}