/* * C Program to Display Every Possible Combination of Two Words * from the given 2 String without Displaying Repeated Combinations */ #include #include void main() { char str1[50], str2[50], str3[100][100], str4[100][100]; char str5[200][200], temp[200], str[200][200]; int i, j = 0, k = 0, l = 0, m = 0, index = 0, n = 0; printf("Enter first string "); scanf("%[^ ]s", str1); printf("Enter second string "); scanf(" %[^ ]s", str2); /* code to convert string in 2-D array */ for (i = 0; str1[i] != ''; i++) { if ((str1[i] = = ' ') { str3[j][k] = ''; j++; k = 0; } else { str3[j][k] = str1[i]; k++; } str3[j][k] = ''; } k = 0; for (i = 0; str2[i] != ''; i++) { if ((str2[i] == ' ') { str4[l][k] = ''; l++; k = 0; } else { str4[l][k] = str2[i]; k++; } str4[l][k] = ''; } /* Code to make the first string words combination with second */ for (i = 0; i <= j; i++) { for (m = 0; m <= l; m++) { strcpy(temp, str3[i]); strcat(temp, str4[m]); strcpy(str5[index], temp); index++; } } /* Code to make the second string words combination with first */ for (i = 0; i <= l; i++) { for (m = 0; m <= j; m++) { strcpy(temp, str4[m]); strcat(temp, str3[i]); strcpy(str5[index], temp); index++; } } /* Code to remove the repetitions */ for (i = 0; i <= index; i++) { for (j = i + 1; j <= index; j++) { if ((strcmp(str5[i], str5[j]) == 0) { for (k = j; k <= index; k++) { strcpy(str5[k], str5[k + 1]); } index--; } } } for (i = 0; i <= index; i++) { printf("%s ", str5[i]); } }