Write a C program to concatenate two strings in single string. How to concatenate two strings to one without using strcat() library function. Adding two strings into one without using inbuilt library function. Logic to concatenate two strings in C programming. C program to concatenate two strings using strcat() library function.
Example
Input
Input string1: I love Input string2: Codeforwin
Output
Concatenated string: I love Codeforwin
Required knowledge
Basic C programming, Loop, String
Must know –
Concatenation of strings
Concatenation of two strings is the process of joining them together to form a new string. Concatenation appends the second string after first string. Concatenation is sometimes also referred as binary addition of strings i.e. + operation.
For example: I love + Codeforwin = I love Codeforwin
Logic to concatenate two strings
Concatenation of two strings is simple copying a string to another. To concatenate two strings str1 and str2, you will copy all characters of str2 at the end of str1.
Below is the step by step descriptive logic to concatenate two string.
- Input two string from user. Store it in some variable say str1 and str2. Here we need to concatenate str2 to str1
- Find length of str1 and store in some variable say i = length_of_str;.
- Run a loop from 0 till end of str2 and copy each character to str1 from the ith index.
Program to concatenate two strings using while loop
/**
* C program to concatenate two strings
*/
#include <stdio.h>
#define MAX_SIZE 100 // Maximum string size
int main()
{
char str1[MAX_SIZE], str2[MAX_SIZE];
int i, j;
/* Input two strings from user */
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
/* Move till the end of str1 */
i=0;
while(str1[i] != '\0')
{
i++;
}
/* Copy str2 to str1 */
j = 0;
while(str2[j] != '\0')
{
str1[i] = str2[j];
i++;
j++;
}
// Make sure that str1 is NULL terminated
str1[i] = '\0';
printf("Concatenated string = %s", str1);
return 0;
}
As I already talked many times in my previous string posts. In C programming NULL is represented using 0. Hence, the above two NULL checking conditions in while loop is unnecessary and can be stripped.
Program to concatenate two strings
/**
* C program to concatenate two strings
*/
#include <stdio.h>
#define MAX_SIZE 100 // Maximum string size
int main()
{
char str1[MAX_SIZE], str2[MAX_SIZE];
int i, j;
/* Input two strings from user */
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
/* Move till the end of str1 */
i=-1;
while(str1[++i]);
/* Copy str2 to str1 */
j = 0;
while(str1[i++] = str2[j++]);
printf("Concatenated string = %s", str1);
return 0;
}
Finally, let us get geeky and apply pointer arithmetic on above approach.
Program to concatenate two strings using pointer
/**
* C program to concatenate two strings using pointer
*/
#include <stdio.h>
#define MAX_SIZE 100 // Maximum string size
int main()
{
char str1[MAX_SIZE], str2[MAX_SIZE];
char * s1 = str1;
char * s2 = str2;
/* Input two strings from user */
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
/* Move till the end of str1 */
while(*(++s1));
/* Copy str2 to str1 */
while(*(s1++) = *(s2++));
printf("Concatenated string = %s", str1);
return 0;
}
Using above methods we concatenated two strings manually. However, in real life you should use inbuilt string library function strcat(str1, str2) to concatenate strings. Where str2 is concatenated to str1. The function is present in string.h header file.
Program to concatenate two strings using strcat() function
/**
* C program to concatenate two strings using strcat()
*/
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // Maximum size of the string
int main()
{
char str1[MAX_SIZE], str2[MAX_SIZE];
/* Input two strings from user */
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
/* Concatenate str1 with str2 */
strcat(str1, str2);
printf("Concatenated string = %s", str1);
return 0;
}
Output
Enter first string: I love Enter second string: Codeforwin Concatenated string = I love Codeforwin
Happy coding 😉
Recommended posts
- String programming exercises and solution index..
- C program to convert uppercase string to lowercase string.
- C program to convert lowercase string to uppercase string
- C program to find reverse of a given string.
- C program to check whether a string is palindrome or not.
- C program to count number of vowels and consonants in a string.