Electrofriends

To copy the contents of one string to another string using pointer

by Ranjith | December 4th, 2008.

This is the simple implementation of the “Copy” function using the pointers. This program copies the content of one string to another.

Logic : The program asks the user to input the string to copy and stores using the pointer str1. The inner function “stcpy” takes 2 string pointers as arguments. By keeping the length as the reference, it traces till EOF , for each i of this iteration it copies the i-th  letter to the destination string, i.e str2. After the EOL, it puts a NULL to the second line. That gives the duplicated string of the entered.

This function copies the string using the pointer, where earlier program copies the string directly.

#include<stdio.h>
#include<conio.h>
void stcpy(char *str1, char *str2);
void main()
{
char *str1, *str2;
clrscr();
printf(“\n\n\t ENTER A STRING…: “);
gets(str1);
stcpy(str1,str2);
printf(“\n\t THE COPIED STRING IS…: “);
puts(str2);
getch();
}
void stcpy(char *str1, char *str2)
{
int i, len = 0;
while(*(str1+len)!=’\0′)
len++;
for(i=0;i<len;i++)
*(str2+i) = *(str1+i);
*(str2+i) = ‘\0′;
}
Download exe and source code here.


Share and Enjoy:
  • Digg
  • Technorati
  • StumbleUpon
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Reddit
  • Mixx
  • Yahoo! Buzz
  • LinkedIn
  • NewsVine
  • RSS
  • email
Similar Posts:

3 Responses to “To copy the contents of one string to another string using pointer”

  1. 1
    saurabhchopra Says:

    a beautiful program.

  2. 2
    Parveez Says:

    wow nice program…….

  3. 3
    Mayuresh Sawant Says:

    not working….u need to assign valid address to str2. check the updated code

    #include
    #include
    void stcpy(char *str1, char *str2);
    void main()
    {
    char ch; //—-> added

    char *str1, *str2=&ch; //—>assigned
    clrscr();
    printf(“\n\n\t ENTER A STRING…: “);
    gets(str1);
    stcpy(str1,str2);
    printf(“\n\t THE COPIED STRING IS…: “);
    puts(str2);
    getch();
    }
    void stcpy(char *str1, char *str2)
    {
    int i, len = 0;
    while(*(str1+len)!=’′)
    len++;
    for(i=0;i<len;i++)
    *(str2+i) = *(str1+i);
    *(str2+i) = ‘′;
    }

Leave a Reply

Share and enjoy

    • Digg
    • Facebook
    • Technorati
    • StumbleUpon
    • Twitter
    • Reddit
    • del.icio.us
    • Yahoo! Buzz
Copyright©2009 www.electrofriends.com All Rights Reserved. Powered by Dhyeya