In this program, we are going to share a C program to concatenate two strings lexically. If you are a beginner and want to start learning the C programming, then keep your close attention in this tutorial as I am going to share a C program to concatenate two strings lexically with the output.
We have designed this program for beginners for learning purpose. Copy below c program and execute it with c compiler to see the output of the program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #include <string.h> #include <stdio.h> void sort(char *p); void main() { char string1[100], string2[100]; int i, len, j; printf("\nEnter a string : "); scanf("%[^\n]s", string1); printf("\nEnter another string to concat : "); scanf(" %[^\n]s", string2); len = strlen(string1); string1[len] = ' '; for(i = 0, j = len + 1; i < strlen(string2); i++, j++) string1[j] = string2[i]; string1[j]='\0'; sort(string1); } /* Sorting to make concatenation lexical */ void sort(char *p) { char temp[100]; char a[100][100]; int t1, i, j = 0, k = 0, l = strlen(p), x = 0, y = 0, z = 0, count, l1, l2; for (i = 0; i < l; i++) { if (p[i] != ' ') { a[k][j++] = p[i]; } else { a[k][j] = '\0'; k++; j = 0; } } t1 = k; k = 0; for (i = 0; i < t1; i++) { for (j = i + 1; j <= t1; j++) { l1 = strlen(a[i]); l2 = strlen(a[j]); if (l1 > l2) count = l1; else count = l2; x = 0, y = 0; while ((x < count) || (y < count)) { if (a[i][x] == a[j][y]) { x++; y++; continue; } else if (a[i][x] < a[j][y]) break; else if (a[i][x] > a[j][y]) { for (z = 0; z < l2; z++) { temp[z] = a[j][z]; a[j][z] = '\0'; } temp[z] = '\0'; for (z = 0; z < l1; z++) { a[j][z] = a[i][z]; a[i][z] = '\0'; } a[j][z] = '\0'; for (z = 0; z < strlen(temp); z++) { a[i][z] = temp[z]; } break; } } } } for (i = 0; i < l; i++) p[i] = '\0'; k = 0; j = 0; for (i = 0; i < l; i++) { if (a[k][j] != '\0') { p[i] = a[k][j++]; } else { k++; j = 0; p[i] = ' '; } } puts(p); } |
Enter a string : hello this
Enter another string to concat : is freewebmentor
hello is freewebmentor this
If you like FreeWebMentor and you would like to contribute, you can write an article and mail your article to [email protected] Your article will appear on the FreeWebMentor main page and help other developers.