/* * 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"); }