#include <stdio.h>
#include <ctype.h>
#include <string.h>
char* conv_string(char*data,int type){
char *conv_data=data;
switch(type){
case 1:{
for(int i =0;i<str_len;i++){
if(data[i]>='a' && data[i]<='z'){
conv_data[i]=data[i]-'a'+'A'; //-32
}else{
conv_data[i]=data[i];
}
}
break;
}
case 2:{
for(int i =0;i<str_len;i++){
if(data[i]>='A' && data[i]<='Z'){
conv_data[i]=data[i]+'a'-'A'; //+32
}else{
conv_data[i]=data[i];
}
}
break;
}
default:{
for(int i =0;i<str_len;i++){
/*Direct way conver toupper for uppercase conversion ,tolower for lowercase conversion*/
}
break;
}
}
return conv_data;
}
void callby_func(char(*callback_fn(char* ,int )),char *data,int type) {
strcpy(strret
,callback_fn
(data
,type
)); printf("conv string %s\n",strret
); }
int main()
{
char strval[10]="AbcDZEf";
void (*ptr_func)(char*,char*,int);
ptr_func=callby_func;
(*ptr_func)(conv_string,strval,1);
printf("conv string %s\n",conv_string
(strval
,1)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+ICAgIAojaW5jbHVkZSA8Y3R5cGUuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgpjaGFyKiBjb252X3N0cmluZyhjaGFyKmRhdGEsaW50IHR5cGUpewogICAgaW50IHN0cl9sZW49c3RybGVuKGRhdGEpOwogICAgY2hhciAqY29udl9kYXRhPWRhdGE7CiAgICBzd2l0Y2godHlwZSl7CiAgICAgICAgY2FzZSAxOnsKICAgICAgICAgICAgZm9yKGludCBpID0wO2k8c3RyX2xlbjtpKyspewogICAgICAgICAgICAgICAgaWYoZGF0YVtpXT49J2EnICYmIGRhdGFbaV08PSd6Jyl7CiAgICAgICAgICAgICAgICAgICAgY29udl9kYXRhW2ldPWRhdGFbaV0tJ2EnKydBJzsgIC8vLTMyCiAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICBjb252X2RhdGFbaV09ZGF0YVtpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgY2FzZSAyOnsKICAgICAgICAgICAgZm9yKGludCBpID0wO2k8c3RyX2xlbjtpKyspewogICAgICAgICAgICAgICAgaWYoZGF0YVtpXT49J0EnICYmIGRhdGFbaV08PSdaJyl7CiAgICAgICAgICAgICAgICAgICAgY29udl9kYXRhW2ldPWRhdGFbaV0rJ2EnLSdBJzsgLy8rMzIKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGNvbnZfZGF0YVtpXT1kYXRhW2ldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZGVmYXVsdDp7CiAgICAgICAgICAgIHByaW50ZigiZGVmYXVsdCBcbiIpOwogICAgICAgICAgICBmb3IoaW50IGkgPTA7aTxzdHJfbGVuO2krKyl7CiAgICAgICAgICAgICAgICBjb252X2RhdGFbaV09dG91cHBlcihkYXRhW2ldKTsKIAkJLypEaXJlY3Qgd2F5IGNvbnZlciB0b3VwcGVyIGZvciAgdXBwZXJjYXNlIGNvbnZlcnNpb24gLHRvbG93ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAgIGxvd2VyY2FzZSBjb252ZXJzaW9uKi8KICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgCiAgICB9CiAgICByZXR1cm4gY29udl9kYXRhOwp9CiAKdm9pZCBjYWxsYnlfZnVuYyhjaGFyKCpjYWxsYmFja19mbihjaGFyKiAsaW50ICkpLGNoYXIgKmRhdGEsaW50IHR5cGUpICAgIHsKICAgIGNoYXIgc3RycmV0W3N0cmxlbihkYXRhKSsxXTsKICAgIHN0cmNweShzdHJyZXQsY2FsbGJhY2tfZm4oZGF0YSAsdHlwZSApKTsKICAgIHByaW50ZigiY29udiBzdHJpbmcgJXNcbiIsc3RycmV0KTsKfQppbnQgbWFpbigpICAgIAp7ICAgIAogICAgY2hhciBzdHJ2YWxbMTBdPSJBYmNEWkVmIjsKICAgIHZvaWQgKCpwdHJfZnVuYykoY2hhciosY2hhciosaW50KTsKICAgIHB0cl9mdW5jPWNhbGxieV9mdW5jOwogICAgKCpwdHJfZnVuYykoY29udl9zdHJpbmcsc3RydmFsLDEpOwoKICAgIHByaW50ZigiY29udiBzdHJpbmcgJXNcbiIsY29udl9zdHJpbmcoc3RydmFsLDEpKTsKICAgIHJldHVybiAwOyAgICAKfSAgCg==
MTAKYWJhCmdlZWtzZm9yZ2Vla3MKZ2Vla3Nmb3JnZWVrcwpnZWVrc2ZvcmdlZWtzCmdlZWtzZm9yZ2Vla3MKZ2Vla3Nmb3JnZWVrcwpnZWVrc2ZvcmdlZWtzCmdlZWtzZm9yZ2Vla3MKZ2Vla3Nmb3JnZWVrcwpnZWVrc2ZvcmdlZWtz
10
aba
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks