fork download
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4. char* conv_string(char*data,int type){
  5. int str_len=strlen(data);
  6. char *conv_data=data;
  7. switch(type){
  8. case 1:{
  9. for(int i =0;i<str_len;i++){
  10. if(data[i]>='a' && data[i]<='z'){
  11. conv_data[i]=data[i]-'a'+'A'; //-32
  12. }else{
  13. conv_data[i]=data[i];
  14. }
  15. }
  16. break;
  17. }
  18. case 2:{
  19. for(int i =0;i<str_len;i++){
  20. if(data[i]>='A' && data[i]<='Z'){
  21. conv_data[i]=data[i]+'a'-'A'; //+32
  22. }else{
  23. conv_data[i]=data[i];
  24. }
  25.  
  26. }
  27. break;
  28. }
  29. default:{
  30. printf("default \n");
  31. for(int i =0;i<str_len;i++){
  32. conv_data[i]=toupper(data[i]);
  33. /*Direct way conver toupper for uppercase conversion ,tolower for lowercase conversion*/
  34. }
  35. break;
  36. }
  37.  
  38. }
  39. return conv_data;
  40. }
  41.  
  42. void callby_func(char(*callback_fn(char* ,int )),char *data,int type) {
  43. char strret[strlen(data)+1];
  44. strcpy(strret,callback_fn(data ,type ));
  45. printf("conv string %s\n",strret);
  46. }
  47. int main()
  48. {
  49. char strval[10]="AbcDZEf";
  50. void (*ptr_func)(char*,char*,int);
  51. ptr_func=callby_func;
  52. (*ptr_func)(conv_string,strval,1);
  53.  
  54. printf("conv string %s\n",conv_string(strval,1));
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 5284KB
stdin
10
aba
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
stdout
conv string ABCDZEF
conv string ABCDZEF