#include <stdio.h>
#include <string.h>
#define SIZE 100
void copyUsingArray( char destination[ ] ,
const char source[ ] )
{
int i = 0 ;
while ( ( destination[ i] = source[ i] ) != '\0 ' )
{
++ i;
}
}
void copyUsingPointer( char * destination,
const char * source)
{
while ( ( * destination = * source) != '\0 ' )
{
++ destination;
++ source;
}
}
void concatenateUsingArray( char destination[ ] ,
const char source[ ] )
{
int i = 0 ;
int j = 0 ;
while ( destination[ i] != '\0 ' )
{
++ i;
}
while ( ( destination[ i] = source[ j] ) != '\0 ' )
{
++ i;
++ j;
}
}
void concatenateUsingPointer( char * destination,
const char * source)
{
while ( * destination != '\0 ' )
{
++ destination;
}
while ( ( * destination = * source) != '\0 ' )
{
++ destination;
++ source;
}
}
int main( void )
{
char source[ ] = "Hello World" ;
char destination1[ SIZE] = "" ;
char destination2[ SIZE] = "" ;
copyUsingArray( destination1, source) ;
copyUsingPointer( destination2, source) ;
printf ( "Copy using array notation: %s\n " , destination1) ;
printf ( "Copy using pointer notation: %s\n " , destination2) ;
char first1[ SIZE] = "Good " ;
char first2[ SIZE] = "Good " ;
char second[ ] = "Morning" ;
concatenateUsingArray( first1, second) ;
concatenateUsingPointer( first2, second) ;
printf ( "Concatenate using array notation: %s\n " , first1) ;
printf ( "Concatenate using pointer notation: %s\n " , first2) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgU0laRSAxMDAKCnZvaWQgY29weVVzaW5nQXJyYXkoY2hhciBkZXN0aW5hdGlvbltdLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgc291cmNlW10pCnsKICAgIGludCBpID0gMDsKCiAgICB3aGlsZSAoKGRlc3RpbmF0aW9uW2ldID0gc291cmNlW2ldKSAhPSAnXDAnKQogICAgewogICAgICAgICsraTsKICAgIH0KfQoKdm9pZCBjb3B5VXNpbmdQb2ludGVyKGNoYXIgKmRlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc291cmNlKQp7CiAgICB3aGlsZSAoKCpkZXN0aW5hdGlvbiA9ICpzb3VyY2UpICE9ICdcMCcpCiAgICB7CiAgICAgICAgKytkZXN0aW5hdGlvbjsKICAgICAgICArK3NvdXJjZTsKICAgIH0KfQoKdm9pZCBjb25jYXRlbmF0ZVVzaW5nQXJyYXkoY2hhciBkZXN0aW5hdGlvbltdLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyIHNvdXJjZVtdKQp7CiAgICBpbnQgaSA9IDA7CiAgICBpbnQgaiA9IDA7CgogICAgd2hpbGUgKGRlc3RpbmF0aW9uW2ldICE9ICdcMCcpCiAgICB7CiAgICAgICAgKytpOwogICAgfQoKICAgIHdoaWxlICgoZGVzdGluYXRpb25baV0gPSBzb3VyY2Vbal0pICE9ICdcMCcpCiAgICB7CiAgICAgICAgKytpOwogICAgICAgICsrajsKICAgIH0KfQoKdm9pZCBjb25jYXRlbmF0ZVVzaW5nUG9pbnRlcihjaGFyICpkZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzb3VyY2UpCnsKICAgIHdoaWxlICgqZGVzdGluYXRpb24gIT0gJ1wwJykKICAgIHsKICAgICAgICArK2Rlc3RpbmF0aW9uOwogICAgfQoKICAgIHdoaWxlICgoKmRlc3RpbmF0aW9uID0gKnNvdXJjZSkgIT0gJ1wwJykKICAgIHsKICAgICAgICArK2Rlc3RpbmF0aW9uOwogICAgICAgICsrc291cmNlOwogICAgfQp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBjaGFyIHNvdXJjZVtdID0gIkhlbGxvIFdvcmxkIjsKICAgIGNoYXIgZGVzdGluYXRpb24xW1NJWkVdID0gIiI7CiAgICBjaGFyIGRlc3RpbmF0aW9uMltTSVpFXSA9ICIiOwoKICAgIGNvcHlVc2luZ0FycmF5KGRlc3RpbmF0aW9uMSwgc291cmNlKTsKICAgIGNvcHlVc2luZ1BvaW50ZXIoZGVzdGluYXRpb24yLCBzb3VyY2UpOwoKICAgIHByaW50ZigiQ29weSB1c2luZyBhcnJheSBub3RhdGlvbjogJXNcbiIsCiAgICAgICAgICAgZGVzdGluYXRpb24xKTsKCiAgICBwcmludGYoIkNvcHkgdXNpbmcgcG9pbnRlciBub3RhdGlvbjogJXNcbiIsCiAgICAgICAgICAgZGVzdGluYXRpb24yKTsKCiAgICBjaGFyIGZpcnN0MVtTSVpFXSA9ICJHb29kICI7CiAgICBjaGFyIGZpcnN0MltTSVpFXSA9ICJHb29kICI7CiAgICBjaGFyIHNlY29uZFtdID0gIk1vcm5pbmciOwoKICAgIGNvbmNhdGVuYXRlVXNpbmdBcnJheShmaXJzdDEsIHNlY29uZCk7CiAgICBjb25jYXRlbmF0ZVVzaW5nUG9pbnRlcihmaXJzdDIsIHNlY29uZCk7CgogICAgcHJpbnRmKCJDb25jYXRlbmF0ZSB1c2luZyBhcnJheSBub3RhdGlvbjogJXNcbiIsCiAgICAgICAgICAgZmlyc3QxKTsKCiAgICBwcmludGYoIkNvbmNhdGVuYXRlIHVzaW5nIHBvaW50ZXIgbm90YXRpb246ICVzXG4iLAogICAgICAgICAgIGZpcnN0Mik7CgogICAgcmV0dXJuIDA7Cn0=