您的位置:首页 > 其它

c中可变长参数的简单应用

2010-12-31 21:22 351 查看
/*
* 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
#include

void 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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: