121: Computer Science 1 --- Lecture March 1

Topics:

Strings and Pointers
Functions with Pointer Parameters

We present a program that illustrates the similarity between arrays and constant pointers. The following program shows two different methods to achieve the copying of a string.


//  Adapted from Fig. 5.21:  
// Copying a string using array notation
// and pointer notation.
#include 
 
using std::cout;
using std::endl;
 
void copy1( char *,  const char * );
void copy2( char *, const char * );
 
int main()
{
   char string1[ 10 ], *string2 = "Hello",
        string3[ 10 ], string4[] = "Good Bye";
 
   copy1( string1, string2 );
   cout << "string1 = " << string1 << endl;
 
   copy2( string3, string4 );
   cout << "string3 = " << string3 << endl;
 
   return 0;
}
 
// copy s2 to s1 using array notation
void copy1( char *s1,  const char *s2 )
{
 int i =0;
    while (s2[ i ] != '\0')
 {    s1[i] = s2[i]; 
        i++;
 }
 s1[i] = '\0';
}
 
 
// copy s2 to s1 using pointer notation
void copy2( char *s1, const char *s2 )
{
    while (*s2 != '\0')
 {
  *s1 = *s2; 
  s1++; s2++;
  }
  *s1 = *s2;
      ;   // do nothing in body
}