Basically, the idea is that you DO NOT touch the original arrays. Instead, you declare two char pointers and point to them. Then, assign the data from source to destination as you move each pointer down the arrays.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
char strDest[20] = ""; char strSource [] = "BLUR SAMPLE"; cout << "the string of strSource: " << strSource << endl; cout << "first character of source: " << *(strSource + 1) << endl; cout << "second character of source: " << *(strSource + 2) << endl; char * destPtr = strDest; char * srcPtr = strSource; cout << "destination is: |" << destPtr << "|" << endl; cout << "source is: |" << srcPtr << "|" << endl; while(*srcPtr != ' ') { *destPtr = *srcPtr; srcPtr++; destPtr++; cout << "destination is: |" << strDest << "|" << endl; } cout << "copy done. final destination is: |" << strDest << "|" << endl; |
result:
destination is: ||
source is: |BLUR SAMPLE|
destination is: |B|
destination is: |BL|
destination is: |BLU|
destination is: |BLUR|
destination is: |BLUR |
destination is: |BLUR S|
destination is: |BLUR SA|
destination is: |BLUR SAM|
destination is: |BLUR SAMP|
destination is: |BLUR SAMPL|
destination is: |BLUR SAMPLE|
copy done. final destination is: |BLUR SAMPLE|