c中可变长参数的简单应用
来源:互联网 发布:绥中广电网络 编辑:程序博客网 时间:2024/04/19 20:00
/* * va_fun :replace the specify char to target string * * many : how many chars want to replace * s : original string * ...: first char ,first target string, second char , * second target string ... * */#include#includevoid va_fun(int many, char *s, ...){int i,j,t,k;char verylongstring[1000];char arg[100];char *des[100];va_list valist;int tag;va_start(valist,s);for(i = 0; i < many; i++){arg[i] = (char)va_arg(valist, int);des[i] = va_arg(valist, char *);}va_end(valist);i = 0;t = 0;k = 0;while(*(s+i) != '/0'){tag = 0;for(j = 0; j < many; j++)if(*(s+i) == arg[j]){for(k = 0; des[j][k] != '/0'; k++)verylongstring[t++] = des[j][k];tag = 1;break;}if(tag == 0) verylongstring[t++] =*(s+i);i++;}verylongstring[t] = '/0';printf("%s/n",verylongstring);}int main(){va_fun(3,"a b c",'a',"I", 'b',"Love", 'c', "You");}