fork(2) download
  1.  
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5.  
  6.  
  7.  
  8. void interleave(char* str1, char* str2, char* str, int len)
  9. {
  10. int i=0;
  11.  
  12.  
  13. if(str1[0] == '\0' && str2[0] == '\0')
  14. {
  15. printf("%s\n", str-len);
  16. return;
  17. }
  18.  
  19.  
  20.  
  21. if(str1[0] != '\0')
  22. {
  23. str[0] = str1[0];
  24. interleave(str1+1, str2, str+1, len);
  25. }
  26. if(str2[0] != '\0')
  27. {
  28. str[0] = str2[0];
  29. interleave(str1, str2+1, str+1, len);
  30. }
  31. }
  32.  
  33.  
  34.  
  35. int main()
  36. {
  37. char* str1 = "AB";
  38. char* str2 = "MNO";
  39.  
  40. int len1 = strlen(str1);
  41. int len2 = strlen(str2);
  42. int len = len1+len2;
  43.  
  44.  
  45.  
  46. char* str = (char*)malloc(len+1);
  47. //memset(str, 0, len+1);
  48.  
  49.  
  50.  
  51. interleave(str1, str2, str, len);
  52. return 0;
  53. }
Success #stdin #stdout 0.02s 1852KB
stdin
Standard input is empty
stdout
ABMNO
AMBNO
AMNBO
AMNOB
MABNO
MANBO
MANOB
MNABO
MNAOB
MNOAB