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. #includeusing 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 }