//File:  swaps.cpp
#include <iostream>
#include <string>
using namespace std;

//C string swap
void cswap (char * p, char * q)
{
	char * temp = 0; //0 is the null pointer
	strcpy (temp, p);  //char * strcpy (char * s1, const char * s2);
	strcpy (p, q);	   //copies the string s2 into s1.  The value of s1 is returned.
	strcpy (q, temp);
}

//C++ string swap
void cppswap (string & a, string & b)
{
	string temp = a;
	a = b;
	b = temp;
}

int main()
{
	char * 	cstring1	= "First C String ";
	char *	cstring2 	= "Second C String";
	
	string 	string1		= "First C++ String ",
		string2		= "Second C++ String";
		
	cout 	<< "The C strings in order are:\t" << cstring1
		<< "\t\t" << cstring2 << endl;
		
	cout	<< "The C++ strings in order are: \t" << string1
		<< "\t" << string2 << '\n' << endl;
		
	cout	<< "AFTER THE SWAPS\n" << endl;
	
	cswap (cstring1, cstring2);
	cppswap (string1, string2);
	
	cout 	<< "The C strings in order are:\t" << cstring1
		<< "\t\t" << cstring2 << endl;
		
	cout	<< "The C++ strings in order are:\t" << string1
		<< "\t" << string2 << endl;
		
	return 0;
}
