Problem: Write a c program to concatenate two strings and output the final result.


str1:   Hello 
str2:   Universe
Output: HelloUniverse 

str1:   Pencil 
str2:   Programmer 
Output: PencilProgrammer

To concatenate two strings in C, you need to follow the following steps:

  1. Get two strings as inputs from the user.
  2. Remove any newline character from the strings.
  3. Pass the strings to strcat(str1, str2) function as parameters.

This will concatenate str2 at the end of str1.

Let’s see the actual implementation of the above algorithm in C:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[100], str2[100];

    printf("Enter the first string: ");
    fgets(str1, sizeof(str1), stdin); // read the first string from user input

    printf("Enter the second string: ");
    fgets(str2, sizeof(str2), stdin); // read the second string from user input

    str1[strcspn(str1, "\n")] = 0; // remove the newline character from str1
    str2[strcspn(str2, "\n")] = 0; // remove the newline character from str2

    strcat(str1, str2); // concatenate str2 onto the end of str1

    printf("The concatenated string is: %s\n", str1);

    return 0;


Enter the first string: Pencil
Enter the second string: Programmer
The concatenated string is: PencilProgrammer

In the above program, first we ask the user to input two strings and store them into the str1 and str2 variables.

Then, using strcspn(), we check for any newline character in the strings.

If any newline character is present in the string, the strcspn() returns a positive index number. To remove it, we simply assign 0 to that index position in the string.

Finally, using the strcat(str1, str2) function, we append the str2 at the end of the str1.

So, the final value of str1 is the concatenation of two input strings.

Leave a Reply