#include <stdio.h>
#include <ctype.h>
#include <string.h>
/*
* encode cd for URL, and saved the result to encd.
* return point to be encoded string.
*/
char *encode( char *cd, char *encd );
int main( int argc, char *argv[] )
{
if( argc < 2 )
return -1;
char encoded[80];
encode( argv[1], encoded );
printf( "%s\n", encoded );
return 0;
}
char *encode( char *cd, char *encd )
{
if( cd == NULL )
return ( char* )0;
int i, j=0;
char dt[10];
char *except = ".,:;|\\/_-@()[]";
for( i = 0; i < strlen( cd ); i++ )
{
if( isalnum( cd[i] ) || isblank( cd[i] ) || strchr( except, cd[i] ) )
{
encd[j++] = cd[i];
continue;
}
sprintf( dt, "%8x", cd[i] );
encd[j++] = '%';
encd[j++] = dt[6];
encd[j++] = dt[7];
}
encd[j] = '\0';
return encd;
}
浙公网安备 33010602011771号