# String Concatenation in C

Problem Statment: Given two Strings concatenate one string to another and print the result.

Examples:

```Example 1:
Input: str1="Take", str2="uforward"
Output: Takeuforward

Example 2:
Input: str1="comp", str2="uter"
Output: computer```

DisclaimerDon’t jump directly to the solution, try it out yourself first.

### Solution 1:

The most basic approach would be to reach to the end of the first string. This can be done simply using a for loop or any other loop. Once we reach the end of first string, start traversing the second string and keep appending the elements to the first string.

Note: This would work under the assumption that first string has enough space empty to append the second string.

Pseudo Code:

• We take two strings as input.
• we declare a variable i = 0 and then run a loop from i =0 until we reach the end of the first string and keep increasing i by 1 in each step.
• Now at the end of the loop, i is equal to the length of string + 1
• Now we declare another variable j =0 and run a loop from j =0 to the end of the second string.
• In each iteration, copy or store the character at jth position in the second string to the ith position of the first string.
• Now we print the first string.

Code:

## C Program

``````#include <stdio.h>
int main()
{
char str1="take";
char str2="uforward";
int i=0;

while(str1[i]!='\0')
{
i++;
}

for(int j=0;str2[j]!='\0';j++)
{

str1[i]=str2[j];
i++;
}
str1[i]='\0';
printf("After concatenation, the string would look like: %s", str1);
return 0;
}``````

Output:

After concatenation, the string would look like: takeuforward

Time Complexity: O(m+n), where m is the length of the first string and n is the length of the second string.

Space Complexity: O(1)

### Solution 2:

We can also simply use the in-built library function strcat() to concatenate two strings in C.

Syntax: strcat(str1, str2). The concatenated string gets stored in str1.

Code:

## C Programs

``````#include <stdio.h>
#include<string.h>
int main()
{
char str1="take";
char str2="uforward";
strcat(str1,str2);
printf("After concatenation, the string would look like: %s", str1);
return 0;
}``````

Output:

After concatenation, the string would look like: takeuforward