#include <iostream>
using std::cout;
using std::cin;
using std::endl;

static char *strcpyA(char *dest, const char *src)
{
    int i = 0;
    while ((dest[i] = src[i]) != '\0')
        i++;
    return dest;
}
	
static char *strcpyP(char *dest, const char *src)
{  
    char *destPtr = dest;
    while ((*destPtr++ = *src++) != '\0')
        ;
    return dest;
}

static void printStr(const char *label, const char *str)
{
    cout << label << " = \"" << str << "\"" << endl;
}

void strcpy_example()
{
    char buffer[30];
    char name1[30] = "Fred";
    (void) strcpyA(buffer, name1);
    printStr("buffer", buffer);
    
    char name2[30] = "Julie";
    (void) strcpyP(buffer, name2);
    printStr("buffer", buffer);
    
    // What would happen if the buffer size was too small?
}

int main(void)
{
    strcpy_example();
    return 0;
}
    
