This program copy text from one string to another string character-by-character with the help of string copy function. C programming language does have a builtin string copy function called strcpy() located in String.h header file.
In this example, you will write a program that uses a user-defined string copy function and does not use the builtin function.
This program is written using Dev-C++ compiler installed on a Windows 7 64-bit machine. If you want to use a different compiler, then modify the program source code to get an error-free program.
Also, before you begin, learn following C programming concepts if unfamiliar with them.
Problem Definition
The program reads a string and then copy that string to another string and display the results.Each string is an array of characters with a null character at the end of the string. Make sure that the size of the string is same or greater than string 2 size, otherwise, there will be problem copying string 1 to string 2.
Start copying string character by character from string 1 to string 2, until we reach a null character.
Assign a null character to the string 2 when all characters of string 1 are copied successfully. This is because every string in C language must end with a ‘\0’.
For Example:-
Suppose the program reads “hello” to string 1, and then the starts copying string 1 to string 2 one character at a time until a null is encountered. See figure below.
Flowchart – String Copy Function
Program Code – String Copy Function
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main ()
{
char s1 [10];
char s2 [10];
int i;
void strcopy (char s2 [10], char s1 [10]);
/* Read the String 1 */
printf ("Enter String 1 :");
gets (s1);
/* Copy the String 1 to String 2 */
strcopy (s2, s1);
/* Print both the functions */
for (i=0; i<35; i++)
printf("_");printf("\n\n");
printf("String2=%s \n\nString1=%s\n",s2,s1);
for(i=0;i<35;i++)
printf("_");printf("\n\n");
system("PAUSE");
return 0;
}
void strcopy (char s2[10], char s1[10])
{
int i= 0;
while(s1[i] !='\0')
{
s2[i] = s1[i];
++i;
}
s2[i]='\0';
}
Output
Enter String 1:Hello world
__________________________________________
String2=Hello world
String1=Hello world
__________________________________________