Respuesta :
```
#include <stdlib.h>
#include <string.h>
char* diff( char a[], char b[] )
{
   int len, i, k, j = 0;
   char *c;
   len = ( strlen( a ) > strlen( b )) ? strlen( a ): strlen( b );
   if( ( c = calloc( len, 0 ) ) == NULL )
       exit( 1 );
   for( i = 0; i < len; i++ )
   {
       if( ( a[ i ] == 0 ) && ( b[ i ] == 0 ) )
       /* we're done */
           break;
       else if( ( a[ i ] == 0 ) && ( b[ i ] != 0 ) )
       /* b is longer, put chars into c */
       {
           k = i;
           while( b[ k ] != 0 )
           {
               c[ j ] = b[ k ];
               j++;
               k++;
           }
           break;
       }
       else if( ( a[ i ] != 0 ) && ( b[ i ] == 0 ) )
       /* a is longer, put chars into c */
       {
           k = i;
           while( a[ k ] != 0 )
           {
               c[ j ] = a[ k ];
               j++;
               k++;
           }
           break;
       }
       else
       {
           if( a[ i ] != b[ i ] )
           /* the chars don't match, put in c */
               c[ j ] = a[ i ];
               j++;
       }
   }
   return( c );
}
int main( int argc, char *argv[] )
{
   if( argc == 3 )
   {
       printf( "%s\n", diff( argv[ 1 ], argv[ 2 ]) );
       exit( 0 );
   }
   else
   {
       fprintf( stderr, "\nusage: %s <string> <string>\n\n", argv[ 0 ] );
       exit( 2 );
   }
}
```
#include <stdlib.h>
#include <string.h>
char* diff( char a[], char b[] )
{
   int len, i, k, j = 0;
   char *c;
   len = ( strlen( a ) > strlen( b )) ? strlen( a ): strlen( b );
   if( ( c = calloc( len, 0 ) ) == NULL )
       exit( 1 );
   for( i = 0; i < len; i++ )
   {
       if( ( a[ i ] == 0 ) && ( b[ i ] == 0 ) )
       /* we're done */
           break;
       else if( ( a[ i ] == 0 ) && ( b[ i ] != 0 ) )
       /* b is longer, put chars into c */
       {
           k = i;
           while( b[ k ] != 0 )
           {
               c[ j ] = b[ k ];
               j++;
               k++;
           }
           break;
       }
       else if( ( a[ i ] != 0 ) && ( b[ i ] == 0 ) )
       /* a is longer, put chars into c */
       {
           k = i;
           while( a[ k ] != 0 )
           {
               c[ j ] = a[ k ];
               j++;
               k++;
           }
           break;
       }
       else
       {
           if( a[ i ] != b[ i ] )
           /* the chars don't match, put in c */
               c[ j ] = a[ i ];
               j++;
       }
   }
   return( c );
}
int main( int argc, char *argv[] )
{
   if( argc == 3 )
   {
       printf( "%s\n", diff( argv[ 1 ], argv[ 2 ]) );
       exit( 0 );
   }
   else
   {
       fprintf( stderr, "\nusage: %s <string> <string>\n\n", argv[ 0 ] );
       exit( 2 );
   }
}
```