How to write a C program to Concatenate Two Strings without using the strcat function?. In this Programming, We can concatenate two strings in multiple ways. But we will discuss four different approaches for string concatenation using For Loop, While Loop, Functions, and Pointers.
C program to Concatenate Two Strings without using strlcat()
This program allows the user to enter two string values or a two character array. Next, it will use For Loop to iterate each character present in that arrays and joins them (or concatenate them). Please refer strcat function as well.
#include <stdio.h> #include <string.h> int main() { char Str1[100], Str2[100]; int i, j; printf("\n Please Enter the First String : "); gets(Str1); printf("\n Please Enter the Second : "); gets(Str2); // To iterate First String from Start to end for (i = 0; Str1[i]!='\0'; i++); // Concatenating Str2 into Str1 for (j = 0; Str2[j]!='\0'; j++, i++) { Str1[i] = Str2[j]; } Str1[i] = '\0'; printf("\n After the Concatenate = %s", Str1); return 0; }
Please Enter the First String : Hello
Please Enter the Second : World
After the Concatenate = HelloWorld
C program to Concatenate Two Strings Using While Loop
This program for string concatenation is the same as above, but this time we are using While Loop (Just replacing Programming For Loop with While Loop).
/* using a while loop */ #include <stdio.h> #include <string.h> int main() { char Str1[100], Str2[100]; int i, j; printf("\n Please Enter the First String : "); gets(Str1); printf("\n Please Enter the Second String : "); gets(Str2); i = 0; while( Str1[i]!='\0') { i++; } j = 0; while( Str2[j]!='\0') { Str1[i] = Str2[j]; i++; j++; } Str1[i] = '\0'; printf("\n String after the Concatenate = %s", Str1); return 0; }

String Concatenation using Functions
This functions program for string concatenation is the same as above. However, this time we are using the Functions concept to separate the logic from the main program.
#include <stdio.h> #include <string.h> void combine(char [], char []); int main() { char Str1[100], Str2[100]; printf("\n Please Enter the First : "); gets(Str1); printf("\n Please Enter the Second : "); gets(Str2); combine(Str1, Str2); printf("\n After the Concat = %s", Str1); return 0; } void combine(char s1[], char s2[]) { int i, j; i = 0; while( s1[i]!='\0') { i++; } j = 0; while( s2[j]!='\0') { s1[i] = s2[j]; i++; j++; } s1[i] = '\0'; }
Please Enter the First : C programming
Please Enter the Second : Tutorial
After the Concat = C programmingTutorial
Concatenate Two String using Pointers
This string concatenation in c program is same as second example, but this time we are using Pointers concept.
#include <stdio.h> #include <string.h> int main() { char Str1[100], Str2[100]; char *s1 = Str1; char *s2 = Str2; printf("\n Please Enter the First : "); gets(Str1); printf("\n Please Enter the Second : "); gets(Str2); while(* ++s1); while(*(s1++) = (*s2++)); printf("\n After the Concatenate = %s", Str1); return 0; }
Please Enter the First : Write a
Please Enter the Second : C Program
After the Concatenate = Write a C Program
Concatenate using Pointer Functions
This program for string concatenation in c is the same as above. However, this time we are passing pointers to Functions to separate the logic from the main program.
#include <stdio.h> #include <string.h> void concatenate(char *, char *); int main() { char Str1[100], Str2[100]; printf("\n Please Enter the First : "); gets(Str1); printf("\n Please Enter the Second : "); gets(Str2); concatenate(Str1, Str2); printf("\n After the Concatenate = %s", Str1); return 0; } void concatenate(char *Str1, char *Str2) { while(*Str1) { Str1++; } while(*Str2) { *Str1 = *Str2; *Str1++; *Str2++; } *Str1 = '\0'; }
Please Enter the First : Good
Please Enter the Second : Morning All
After the Concatenate = GoodMorning All